From 0b358a6c412fe901629573e6603dccd647549c0e Mon Sep 17 00:00:00 2001 From: "jose.rodriguezlabra" Date: Fri, 15 Feb 2019 12:38:07 -0500 Subject: [PATCH] Set some comments --- lab2CA.cache/wt/webtalk_pa.xml | 110 ++-- lab2CA.runs/.jobs/vrs_config_1.xml | 8 + lab2CA.runs/.jobs/vrs_config_2.xml | 8 + lab2CA.runs/impl_1/RegFile.tcl | 150 +++++ lab2CA.runs/impl_1/RegFile.vdi | 380 +++++++++++++ lab2CA.runs/impl_1/RegFile_bus_skew_routed.pb | Bin 0 -> 30 bytes .../impl_1/RegFile_bus_skew_routed.rpt | 15 + .../RegFile_clock_utilization_routed.rpt | 99 ++++ .../impl_1/RegFile_control_sets_placed.rpt | 61 ++ lab2CA.runs/impl_1/RegFile_drc_opted.pb | Bin 0 -> 37 bytes lab2CA.runs/impl_1/RegFile_drc_opted.rpt | 61 ++ lab2CA.runs/impl_1/RegFile_drc_routed.pb | Bin 0 -> 37 bytes lab2CA.runs/impl_1/RegFile_drc_routed.rpt | 61 ++ lab2CA.runs/impl_1/RegFile_io_placed.rpt | 526 ++++++++++++++++++ .../impl_1/RegFile_methodology_drc_routed.pb | Bin 0 -> 52 bytes .../impl_1/RegFile_methodology_drc_routed.rpt | 34 ++ lab2CA.runs/impl_1/RegFile_opt.dcp | Bin 0 -> 8479 bytes lab2CA.runs/impl_1/RegFile_placed.dcp | Bin 0 -> 120104 bytes lab2CA.runs/impl_1/RegFile_power_routed.rpt | 138 +++++ .../impl_1/RegFile_power_summary_routed.pb | Bin 0 -> 707 bytes lab2CA.runs/impl_1/RegFile_route_status.pb | Bin 0 -> 43 bytes lab2CA.runs/impl_1/RegFile_route_status.rpt | 11 + lab2CA.runs/impl_1/RegFile_routed.dcp | Bin 0 -> 123752 bytes .../impl_1/RegFile_timing_summary_routed.pb | 2 + .../impl_1/RegFile_timing_summary_routed.rpt | 173 ++++++ .../impl_1/RegFile_utilization_placed.pb | Bin 0 -> 289 bytes .../impl_1/RegFile_utilization_placed.rpt | 196 +++++++ lab2CA.runs/impl_1/gen_run.xml | 126 +++++ lab2CA.runs/impl_1/htr.txt | 9 + lab2CA.runs/impl_1/init_design.pb | Bin 0 -> 1621 bytes lab2CA.runs/impl_1/opt_design.pb | Bin 0 -> 10545 bytes lab2CA.runs/impl_1/place_design.pb | Bin 0 -> 6962 bytes lab2CA.runs/impl_1/route_design.pb | Bin 0 -> 11979 bytes lab2CA.runs/impl_1/vivado.jou | 12 + lab2CA.runs/impl_1/vivado.pb | Bin 0 -> 149 bytes lab2CA.runs/synth_1/RegFile.dcp | Bin 0 -> 8074 bytes lab2CA.runs/synth_1/RegFile.tcl | 54 ++ lab2CA.runs/synth_1/RegFile.vds | 295 ++++++++++ .../synth_1/RegFile_utilization_synth.pb | Bin 0 -> 289 bytes .../synth_1/RegFile_utilization_synth.rpt | 173 ++++++ lab2CA.runs/synth_1/gen_run.xml | 58 ++ lab2CA.runs/synth_1/htr.txt | 9 + lab2CA.runs/synth_1/vivado.jou | 12 + lab2CA.runs/synth_1/vivado.pb | Bin 0 -> 32432 bytes lab2CA.sim/sim_1/impl/timing/xsim/RegFile.tcl | 11 + .../impl/timing/xsim/RegFile_time_impl.v | 184 ++++++ .../sim_1/impl/timing/xsim/RegFile_vlog.prj | 6 + lab2CA.sim/sim_1/impl/timing/xsim/webtalk.jou | 12 + .../impl/timing/xsim/webtalk_2004.backup.jou | 12 + lab2CA.sim/sim_1/impl/timing/xsim/xelab.pb | Bin 0 -> 1977 bytes .../RegFile_time_impl/Compile_Options.txt | 1 + .../RegFile_time_impl/TempBreakPointFile.txt | 1 + .../xsim.dir/RegFile_time_impl/obj/xsim_1.c | 148 +++++ .../xsim/xsim.dir/RegFile_time_impl/xsim.mem | Bin 0 -> 8013 bytes lab2CA.sim/sim_1/impl/timing/xsim/xvlog.pb | Bin 0 -> 447 bytes lab2CA.srcs/sources_1/new/BasicModules.v | 13 +- lab2CA.xpr | 9 +- 57 files changed, 3092 insertions(+), 86 deletions(-) create mode 100644 lab2CA.runs/.jobs/vrs_config_1.xml create mode 100644 lab2CA.runs/.jobs/vrs_config_2.xml create mode 100644 lab2CA.runs/impl_1/RegFile.tcl create mode 100644 lab2CA.runs/impl_1/RegFile.vdi create mode 100644 lab2CA.runs/impl_1/RegFile_bus_skew_routed.pb create mode 100644 lab2CA.runs/impl_1/RegFile_bus_skew_routed.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_clock_utilization_routed.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_control_sets_placed.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_drc_opted.pb create mode 100644 lab2CA.runs/impl_1/RegFile_drc_opted.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_drc_routed.pb create mode 100644 lab2CA.runs/impl_1/RegFile_drc_routed.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_io_placed.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_methodology_drc_routed.pb create mode 100644 lab2CA.runs/impl_1/RegFile_methodology_drc_routed.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_opt.dcp create mode 100644 lab2CA.runs/impl_1/RegFile_placed.dcp create mode 100644 lab2CA.runs/impl_1/RegFile_power_routed.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_power_summary_routed.pb create mode 100644 lab2CA.runs/impl_1/RegFile_route_status.pb create mode 100644 lab2CA.runs/impl_1/RegFile_route_status.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_routed.dcp create mode 100644 lab2CA.runs/impl_1/RegFile_timing_summary_routed.pb create mode 100644 lab2CA.runs/impl_1/RegFile_timing_summary_routed.rpt create mode 100644 lab2CA.runs/impl_1/RegFile_utilization_placed.pb create mode 100644 lab2CA.runs/impl_1/RegFile_utilization_placed.rpt create mode 100644 lab2CA.runs/impl_1/gen_run.xml create mode 100644 lab2CA.runs/impl_1/htr.txt create mode 100644 lab2CA.runs/impl_1/init_design.pb create mode 100644 lab2CA.runs/impl_1/opt_design.pb create mode 100644 lab2CA.runs/impl_1/place_design.pb create mode 100644 lab2CA.runs/impl_1/route_design.pb create mode 100644 lab2CA.runs/impl_1/vivado.jou create mode 100644 lab2CA.runs/impl_1/vivado.pb create mode 100644 lab2CA.runs/synth_1/RegFile.dcp create mode 100644 lab2CA.runs/synth_1/RegFile.tcl create mode 100644 lab2CA.runs/synth_1/RegFile.vds create mode 100644 lab2CA.runs/synth_1/RegFile_utilization_synth.pb create mode 100644 lab2CA.runs/synth_1/RegFile_utilization_synth.rpt create mode 100644 lab2CA.runs/synth_1/gen_run.xml create mode 100644 lab2CA.runs/synth_1/htr.txt create mode 100644 lab2CA.runs/synth_1/vivado.jou create mode 100644 lab2CA.runs/synth_1/vivado.pb create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/RegFile.tcl create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/RegFile_time_impl.v create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/RegFile_vlog.prj create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/webtalk.jou create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/webtalk_2004.backup.jou create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/xelab.pb create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/Compile_Options.txt create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/TempBreakPointFile.txt create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/obj/xsim_1.c create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/xsim.mem create mode 100644 lab2CA.sim/sim_1/impl/timing/xsim/xvlog.pb diff --git a/lab2CA.cache/wt/webtalk_pa.xml b/lab2CA.cache/wt/webtalk_pa.xml index ef11cd9..2329f08 100644 --- a/lab2CA.cache/wt/webtalk_pa.xml +++ b/lab2CA.cache/wt/webtalk_pa.xml @@ -3,14 +3,10 @@ -<<<<<<< Updated upstream - -======= - ->>>>>>> Stashed changes +
- - + +
@@ -21,87 +17,47 @@ This means code written to parse this file will need to be revisited each subseq -<<<<<<< Updated upstream - - - - -======= - - ->>>>>>> Stashed changes - + + + + + + + + + + -<<<<<<< Updated upstream - - -======= - - - ->>>>>>> Stashed changes - - - - -<<<<<<< Updated upstream - - - -======= - - ->>>>>>> Stashed changes - - - - - - - - - - - + + + + + + -<<<<<<< Updated upstream - -======= - - ->>>>>>> Stashed changes - - - - - + + + + + + + + + - - - -<<<<<<< Updated upstream - + - + + - + - -======= - - - - - - - - ->>>>>>> Stashed changes +
diff --git a/lab2CA.runs/.jobs/vrs_config_1.xml b/lab2CA.runs/.jobs/vrs_config_1.xml new file mode 100644 index 0000000..99b94d7 --- /dev/null +++ b/lab2CA.runs/.jobs/vrs_config_1.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/lab2CA.runs/.jobs/vrs_config_2.xml b/lab2CA.runs/.jobs/vrs_config_2.xml new file mode 100644 index 0000000..ff57e1f --- /dev/null +++ b/lab2CA.runs/.jobs/vrs_config_2.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/lab2CA.runs/impl_1/RegFile.tcl b/lab2CA.runs/impl_1/RegFile.tcl new file mode 100644 index 0000000..a45b870 --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile.tcl @@ -0,0 +1,150 @@ +# +# 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" + } +} +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) + } + } 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 +} + + +start_step init_design +set ACTIVE_STEP init_design +set rc [catch { + create_msg_db init_design.pb + create_project -in_memory -part xc7k160tifbg484-2L + set_property design_mode GateLvl [current_fileset] + set_param project.singleFileAddWarning.threshold 0 + set_property webtalk.parent_dir {C:/Users/JoseIgnacio/CA Lab/lab2CA.cache/wt} [current_project] + set_property parent.project_path {C:/Users/JoseIgnacio/CA Lab/lab2CA.xpr} [current_project] + set_property ip_output_repo {{C:/Users/JoseIgnacio/CA Lab/lab2CA.cache/ip}} [current_project] + set_property ip_cache_permissions {read write} [current_project] + add_files -quiet {{C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/synth_1/RegFile.dcp}} + link_design -top RegFile -part xc7k160tifbg484-2L + 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 +} + +start_step opt_design +set ACTIVE_STEP opt_design +set rc [catch { + create_msg_db opt_design.pb + opt_design + write_checkpoint -force RegFile_opt.dcp + create_report "impl_1_opt_report_drc_0" "report_drc -file RegFile_drc_opted.rpt -pb RegFile_drc_opted.pb -rpx RegFile_drc_opted.rpx" + 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 +} + +start_step place_design +set ACTIVE_STEP place_design +set rc [catch { + create_msg_db place_design.pb + if { [llength [get_debug_cores -quiet] ] > 0 } { + implement_debug_core + } + place_design + write_checkpoint -force RegFile_placed.dcp + create_report "impl_1_place_report_io_0" "report_io -file RegFile_io_placed.rpt" + create_report "impl_1_place_report_utilization_0" "report_utilization -file RegFile_utilization_placed.rpt -pb RegFile_utilization_placed.pb" + create_report "impl_1_place_report_control_sets_0" "report_control_sets -verbose -file RegFile_control_sets_placed.rpt" + 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 +} + +start_step route_design +set ACTIVE_STEP route_design +set rc [catch { + create_msg_db route_design.pb + route_design + write_checkpoint -force RegFile_routed.dcp + create_report "impl_1_route_report_drc_0" "report_drc -file RegFile_drc_routed.rpt -pb RegFile_drc_routed.pb -rpx RegFile_drc_routed.rpx" + create_report "impl_1_route_report_methodology_0" "report_methodology -file RegFile_methodology_drc_routed.rpt -pb RegFile_methodology_drc_routed.pb -rpx RegFile_methodology_drc_routed.rpx" + create_report "impl_1_route_report_power_0" "report_power -file RegFile_power_routed.rpt -pb RegFile_power_summary_routed.pb -rpx RegFile_power_routed.rpx" + create_report "impl_1_route_report_route_status_0" "report_route_status -file RegFile_route_status.rpt -pb RegFile_route_status.pb" + create_report "impl_1_route_report_timing_summary_0" "report_timing_summary -max_paths 10 -file RegFile_timing_summary_routed.rpt -pb RegFile_timing_summary_routed.pb -rpx RegFile_timing_summary_routed.rpx -warn_on_violation " + create_report "impl_1_route_report_incremental_reuse_0" "report_incremental_reuse -file RegFile_incremental_reuse_routed.rpt" + create_report "impl_1_route_report_clock_utilization_0" "report_clock_utilization -file RegFile_clock_utilization_routed.rpt" + create_report "impl_1_route_report_bus_skew_0" "report_bus_skew -warn_on_violation -file RegFile_bus_skew_routed.rpt -pb RegFile_bus_skew_routed.pb -rpx RegFile_bus_skew_routed.rpx" + close_msg_db -file route_design.pb +} RESULT] +if {$rc} { + write_checkpoint -force RegFile_routed_error.dcp + step_failed route_design + return -code error $RESULT +} else { + end_step route_design + unset ACTIVE_STEP +} + diff --git a/lab2CA.runs/impl_1/RegFile.vdi b/lab2CA.runs/impl_1/RegFile.vdi new file mode 100644 index 0000000..4ff9cef --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile.vdi @@ -0,0 +1,380 @@ +#----------------------------------------------------------- +# Vivado v2018.3 (64-bit) +# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018 +# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 +# Start of session at: Fri Feb 15 12:30:55 2019 +# Process ID: 11860 +# Current directory: C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1 +# Command line: vivado.exe -log RegFile.vdi -applog -product Vivado -messageDb vivado.pb -mode batch -source RegFile.tcl -notrace +# Log file: C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1/RegFile.vdi +# Journal file: C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1\vivado.jou +#----------------------------------------------------------- +source RegFile.tcl -notrace +Command: link_design -top RegFile -part xc7k160tifbg484-2L +Design is defaulting to srcset: sources_1 +Design is defaulting to constrset: constrs_1 +INFO: [Project 1-479] Netlist was created with Vivado 2018.3 +INFO: [Device 21-403] Loading part xc7k160tifbg484-2L +INFO: [Project 1-570] Preparing netlist for logic optimization +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 583.539 ; gain = 0.000 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +4 Infos, 0 Warnings, 0 Critical Warnings and 0 Errors encountered. +link_design completed successfully +link_design: Time (s): cpu = 00:00:07 ; elapsed = 00:00:08 . Memory (MB): peak = 589.113 ; gain = 334.250 +Command: opt_design +Attempting to get a license for feature 'Implementation' and/or device 'xc7k160ti' +INFO: [Common 17-349] Got license for feature 'Implementation' and/or device 'xc7k160ti' +Running DRC as a precondition to command opt_design + +Starting DRC Task +INFO: [DRC 23-27] Running DRC with 2 threads +INFO: [Project 1-461] DRC finished with 0 Errors +INFO: [Project 1-462] Please refer to the DRC report (report_drc) for more information. + +Time (s): cpu = 00:00:02 ; elapsed = 00:00:01 . Memory (MB): peak = 603.453 ; gain = 14.340 + +Starting Cache Timing Information Task +INFO: [Timing 38-35] Done setting XDC timing constraints. +Ending Cache Timing Information Task | Checksum: aad14af3 + +Time (s): cpu = 00:00:14 ; elapsed = 00:00:15 . Memory (MB): peak = 1128.941 ; gain = 525.488 + +Starting Logic Optimization Task + +Phase 1 Retarget +INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s). +INFO: [Opt 31-49] Retargeted 0 cell(s). +Phase 1 Retarget | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.056 . Memory (MB): peak = 1225.754 ; gain = 0.000 +INFO: [Opt 31-389] Phase Retarget created 0 cells and removed 0 cells + +Phase 2 Constant propagation +INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s). +Phase 2 Constant propagation | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.060 . Memory (MB): peak = 1225.754 ; gain = 0.000 +INFO: [Opt 31-389] Phase Constant propagation created 0 cells and removed 0 cells + +Phase 3 Sweep +Phase 3 Sweep | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.067 . Memory (MB): peak = 1225.754 ; gain = 0.000 +INFO: [Opt 31-389] Phase Sweep created 0 cells and removed 0 cells + +Phase 4 BUFG optimization +Phase 4 BUFG optimization | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.071 . Memory (MB): peak = 1225.754 ; gain = 0.000 +INFO: [Opt 31-662] Phase BUFG optimization created 0 cells of which 0 are BUFGs and removed 0 cells. + +Phase 5 Shift Register Optimization +Phase 5 Shift Register Optimization | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.124 . Memory (MB): peak = 1225.754 ; gain = 0.000 +INFO: [Opt 31-389] Phase Shift Register Optimization created 0 cells and removed 0 cells + +Phase 6 Post Processing Netlist +Phase 6 Post Processing Netlist | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.126 . Memory (MB): peak = 1225.754 ; gain = 0.000 +INFO: [Opt 31-389] Phase Post Processing Netlist created 0 cells and removed 0 cells +Opt_design Change Summary +========================= + + +------------------------------------------------------------------------------------------------------------------------- +| Phase | #Cells created | #Cells Removed | #Constrained objects preventing optimizations | +------------------------------------------------------------------------------------------------------------------------- +| Retarget | 0 | 0 | 0 | +| Constant propagation | 0 | 0 | 0 | +| Sweep | 0 | 0 | 0 | +| BUFG optimization | 0 | 0 | 0 | +| Shift Register Optimization | 0 | 0 | 0 | +| Post Processing Netlist | 0 | 0 | 0 | +------------------------------------------------------------------------------------------------------------------------- + + + +Starting Connectivity Check Task + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1225.754 ; gain = 0.000 +Ending Logic Optimization Task | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.129 . Memory (MB): peak = 1225.754 ; gain = 0.000 + +Starting Power Optimization Task +INFO: [Pwropt 34-132] Skipping clock gating for clocks with a period < 2.00 ns. +Ending Power Optimization Task | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.021 . Memory (MB): peak = 1225.754 ; gain = 0.000 + +Starting Final Cleanup Task +Ending Final Cleanup Task | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1225.754 ; gain = 0.000 + +Starting Netlist Obfuscation Task +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1225.754 ; gain = 0.000 +Ending Netlist Obfuscation Task | Checksum: aad14af3 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1225.754 ; gain = 0.000 +INFO: [Common 17-83] Releasing license: Implementation +20 Infos, 0 Warnings, 0 Critical Warnings and 0 Errors encountered. +opt_design completed successfully +opt_design: Time (s): cpu = 00:00:17 ; elapsed = 00:00:18 . Memory (MB): peak = 1225.754 ; gain = 636.641 +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.001 . Memory (MB): peak = 1225.754 ; gain = 0.000 +WARNING: [Constraints 18-5210] No constraints selected for write. +Resolution: This message can indicate that there are no constraints for the design, or it can indicate that the used_in flags are set such that the constraints are ignored. This later case is used when running synth_design to not write synthesis constraints to the resulting checkpoint. Instead, project constraints are read when the synthesized design is opened. +INFO: [Common 17-1381] The checkpoint 'C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1/RegFile_opt.dcp' has been generated. +INFO: [runtcl-4] Executing : report_drc -file RegFile_drc_opted.rpt -pb RegFile_drc_opted.pb -rpx RegFile_drc_opted.rpx +Command: report_drc -file RegFile_drc_opted.rpt -pb RegFile_drc_opted.pb -rpx RegFile_drc_opted.rpx +INFO: [IP_Flow 19-234] Refreshing IP repositories +INFO: [IP_Flow 19-1704] No user IP repositories specified +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository 'C:/Xilinx/Vivado/2018.3/data/ip'. +INFO: [DRC 23-27] Running DRC with 2 threads +INFO: [Coretcl 2-168] The results of DRC are in file C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1/RegFile_drc_opted.rpt. +report_drc completed successfully +Command: place_design +Attempting to get a license for feature 'Implementation' and/or device 'xc7k160ti' +INFO: [Common 17-349] Got license for feature 'Implementation' and/or device 'xc7k160ti' +INFO: [DRC 23-27] Running DRC with 2 threads +INFO: [Vivado_Tcl 4-198] DRC finished with 0 Errors +INFO: [Vivado_Tcl 4-199] Please refer to the DRC report (report_drc) for more information. +Running DRC as a precondition to command place_design +INFO: [DRC 23-27] Running DRC with 2 threads +INFO: [Vivado_Tcl 4-198] DRC finished with 0 Errors +INFO: [Vivado_Tcl 4-199] Please refer to the DRC report (report_drc) for more information. + +Starting Placer Task +INFO: [Place 30-611] Multithreading enabled for place_design using a maximum of 2 CPUs + +Phase 1 Placer Initialization + +Phase 1.1 Placer Initialization Netlist Sorting +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1225.754 ; gain = 0.000 +Phase 1.1 Placer Initialization Netlist Sorting | Checksum: 7fa8ebe0 + +Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.021 . Memory (MB): peak = 1225.754 ; gain = 0.000 +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1225.754 ; gain = 0.000 + +Phase 1.2 IO Placement/ Clock Placement/ Build Placer Device +INFO: [Timing 38-35] Done setting XDC timing constraints. +Phase 1.2 IO Placement/ Clock Placement/ Build Placer Device | Checksum: ae3aece4 + +Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 1238.875 ; gain = 13.121 + +Phase 1.3 Build Placer Netlist Model +Phase 1.3 Build Placer Netlist Model | Checksum: 182815a23 + +Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 1238.875 ; gain = 13.121 + +Phase 1.4 Constrain Clocks/Macros +Phase 1.4 Constrain Clocks/Macros | Checksum: 182815a23 + +Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 1238.875 ; gain = 13.121 +Phase 1 Placer Initialization | Checksum: 182815a23 + +Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 1238.875 ; gain = 13.121 + +Phase 2 Final Placement Cleanup +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1238.875 ; gain = 0.000 +Phase 2 Final Placement Cleanup | Checksum: 182815a23 + +Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 1238.875 ; gain = 13.121 +INFO: [Place 30-281] No place-able instance is found; design doesn't contain any instance or all instances are placed +Ending Placer Task | Checksum: ae3aece4 + +Time (s): cpu = 00:00:02 ; elapsed = 00:00:02 . Memory (MB): peak = 1238.875 ; gain = 13.121 +INFO: [Common 17-83] Releasing license: Implementation +38 Infos, 1 Warnings, 0 Critical Warnings and 0 Errors encountered. +place_design completed successfully +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1238.875 ; gain = 0.000 +WARNING: [Constraints 18-5210] No constraints selected for write. +Resolution: This message can indicate that there are no constraints for the design, or it can indicate that the used_in flags are set such that the constraints are ignored. This later case is used when running synth_design to not write synthesis constraints to the resulting checkpoint. Instead, project constraints are read when the synthesized design is opened. +Writing placer database... +Writing XDEF routing. +Writing XDEF routing logical nets. +Writing XDEF routing special nets. +Write XDEF Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.151 . Memory (MB): peak = 1238.875 ; gain = 0.000 +INFO: [Common 17-1381] The checkpoint 'C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1/RegFile_placed.dcp' has been generated. +INFO: [runtcl-4] Executing : report_io -file RegFile_io_placed.rpt +report_io: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.112 . Memory (MB): peak = 1243.988 ; gain = 5.113 +INFO: [runtcl-4] Executing : report_utilization -file RegFile_utilization_placed.rpt -pb RegFile_utilization_placed.pb +INFO: [runtcl-4] Executing : report_control_sets -verbose -file RegFile_control_sets_placed.rpt +report_control_sets: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.006 . Memory (MB): peak = 1243.988 ; gain = 0.000 +Command: route_design +Attempting to get a license for feature 'Implementation' and/or device 'xc7k160ti' +INFO: [Common 17-349] Got license for feature 'Implementation' and/or device 'xc7k160ti' +Running DRC as a precondition to command route_design +INFO: [DRC 23-27] Running DRC with 2 threads +INFO: [Vivado_Tcl 4-198] DRC finished with 0 Errors +INFO: [Vivado_Tcl 4-199] Please refer to the DRC report (report_drc) for more information. + + +Starting Routing Task +INFO: [Route 35-254] Multithreading enabled for route_design using a maximum of 2 CPUs +Checksum: PlaceDB: 2e920104 ConstDB: 0 ShapeSum: 7fa8ebe0 RouteDB: 0 + +Phase 1 Build RT Design +Phase 1 Build RT Design | Checksum: ccf0732b + +Time (s): cpu = 00:00:41 ; elapsed = 00:00:31 . Memory (MB): peak = 1467.336 ; gain = 220.660 +Post Restoration Checksum: NetGraph: 2e7f4797 NumContArr: 9e712b94 Constraints: 0 Timing: 0 + +Phase 2 Router Initialization +INFO: [Route 35-64] No timing constraints were detected. The router will operate in resource-optimization mode. + +Phase 2.1 Fix Topology Constraints +Phase 2.1 Fix Topology Constraints | Checksum: ccf0732b + +Time (s): cpu = 00:00:41 ; elapsed = 00:00:31 . Memory (MB): peak = 1471.402 ; gain = 224.727 + +Phase 2.2 Pre Route Cleanup +Phase 2.2 Pre Route Cleanup | Checksum: ccf0732b + +Time (s): cpu = 00:00:41 ; elapsed = 00:00:31 . Memory (MB): peak = 1471.402 ; gain = 224.727 + Number of Nodes with overlaps = 0 +Phase 2 Router Initialization | Checksum: b146062c + +Time (s): cpu = 00:00:41 ; elapsed = 00:00:31 . Memory (MB): peak = 1478.180 ; gain = 231.504 + +Phase 3 Initial Routing + Number of Nodes with overlaps = 0 +Phase 3 Initial Routing | Checksum: b146062c + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1482.605 ; gain = 235.930 + +Phase 4 Rip-up And Reroute + +Phase 4.1 Global Iteration 0 +Phase 4.1 Global Iteration 0 | Checksum: b146062c + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1482.605 ; gain = 235.930 +Phase 4 Rip-up And Reroute | Checksum: b146062c + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1482.605 ; gain = 235.930 + +Phase 5 Delay and Skew Optimization +Phase 5 Delay and Skew Optimization | Checksum: b146062c + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1482.605 ; gain = 235.930 + +Phase 6 Post Hold Fix + +Phase 6.1 Hold Fix Iter +Phase 6.1 Hold Fix Iter | Checksum: b146062c + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1482.605 ; gain = 235.930 +Phase 6 Post Hold Fix | Checksum: b146062c + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1482.605 ; gain = 235.930 + +Phase 7 Route finalize + +Router Utilization Summary + Global Vertical Routing Utilization = 0 % + Global Horizontal Routing Utilization = 0 % + Routable Net Status* + *Does not include unroutable nets such as driverless and loadless. + Run report_route_status for detailed report. + Number of Failed Nets = 0 + Number of Unrouted Nets = 0 + Number of Partially Routed Nets = 0 + Number of Node Overlaps = 0 + +Congestion Report +North Dir 1x1 Area, Max Cong = 0%, No Congested Regions. +South Dir 1x1 Area, Max Cong = 0%, No Congested Regions. +East Dir 1x1 Area, Max Cong = 0%, No Congested Regions. +West Dir 1x1 Area, Max Cong = 0%, No Congested Regions. + +------------------------------ +Reporting congestion hotspots +------------------------------ +Direction: North +---------------- +Congested clusters found at Level 0 +Effective congestion level: 0 Aspect Ratio: 1 Sparse Ratio: 0 +Direction: South +---------------- +Congested clusters found at Level 0 +Effective congestion level: 0 Aspect Ratio: 1 Sparse Ratio: 0 +Direction: East +---------------- +Congested clusters found at Level 0 +Effective congestion level: 0 Aspect Ratio: 1 Sparse Ratio: 0 +Direction: West +---------------- +Congested clusters found at Level 0 +Effective congestion level: 0 Aspect Ratio: 1 Sparse Ratio: 0 + +Phase 7 Route finalize | Checksum: b146062c + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1482.605 ; gain = 235.930 + +Phase 8 Verifying routed nets + + Verification completed successfully +Phase 8 Verifying routed nets | Checksum: b146062c + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1484.613 ; gain = 237.938 + +Phase 9 Depositing Routes +Phase 9 Depositing Routes | Checksum: b146062c + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1484.613 ; gain = 237.938 +INFO: [Route 35-16] Router Completed Successfully + +Time (s): cpu = 00:00:42 ; elapsed = 00:00:32 . Memory (MB): peak = 1484.613 ; gain = 237.938 + +Routing Is Done. +INFO: [Common 17-83] Releasing license: Implementation +50 Infos, 2 Warnings, 0 Critical Warnings and 0 Errors encountered. +route_design completed successfully +route_design: Time (s): cpu = 00:00:45 ; elapsed = 00:00:33 . Memory (MB): peak = 1484.613 ; gain = 240.625 +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1484.613 ; gain = 0.000 +WARNING: [Constraints 18-5210] No constraints selected for write. +Resolution: This message can indicate that there are no constraints for the design, or it can indicate that the used_in flags are set such that the constraints are ignored. This later case is used when running synth_design to not write synthesis constraints to the resulting checkpoint. Instead, project constraints are read when the synthesized design is opened. +Writing placer database... +Writing XDEF routing. +Writing XDEF routing logical nets. +Writing XDEF routing special nets. +Write XDEF Complete: Time (s): cpu = 00:00:01 ; elapsed = 00:00:00.058 . Memory (MB): peak = 1484.613 ; gain = 0.000 +INFO: [Common 17-1381] The checkpoint 'C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1/RegFile_routed.dcp' has been generated. +INFO: [runtcl-4] Executing : report_drc -file RegFile_drc_routed.rpt -pb RegFile_drc_routed.pb -rpx RegFile_drc_routed.rpx +Command: report_drc -file RegFile_drc_routed.rpt -pb RegFile_drc_routed.pb -rpx RegFile_drc_routed.rpx +INFO: [IP_Flow 19-1839] IP Catalog is up to date. +INFO: [DRC 23-27] Running DRC with 2 threads +INFO: [Coretcl 2-168] The results of DRC are in file C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1/RegFile_drc_routed.rpt. +report_drc completed successfully +INFO: [runtcl-4] Executing : report_methodology -file RegFile_methodology_drc_routed.rpt -pb RegFile_methodology_drc_routed.pb -rpx RegFile_methodology_drc_routed.rpx +Command: report_methodology -file RegFile_methodology_drc_routed.rpt -pb RegFile_methodology_drc_routed.pb -rpx RegFile_methodology_drc_routed.rpx +INFO: [Timing 38-35] Done setting XDC timing constraints. +INFO: [DRC 23-133] Running Methodology with 2 threads +INFO: [Coretcl 2-1520] The results of Report Methodology are in file C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1/RegFile_methodology_drc_routed.rpt. +report_methodology completed successfully +INFO: [runtcl-4] Executing : report_power -file RegFile_power_routed.rpt -pb RegFile_power_summary_routed.pb -rpx RegFile_power_routed.rpx +Command: report_power -file RegFile_power_routed.rpt -pb RegFile_power_summary_routed.pb -rpx RegFile_power_routed.rpx +WARNING: [Power 33-232] No user defined clocks were found in the design! +Resolution: Please specify clocks using create_clock/create_generated_clock for sequential elements. For pure combinatorial circuits, please specify a virtual clock, otherwise the vectorless estimation might be inaccurate +INFO: [Timing 38-35] Done setting XDC timing constraints. +Running Vector-less Activity Propagation... + +Finished Running Vector-less Activity Propagation +61 Infos, 4 Warnings, 0 Critical Warnings and 0 Errors encountered. +report_power completed successfully +INFO: [runtcl-4] Executing : report_route_status -file RegFile_route_status.rpt -pb RegFile_route_status.pb +INFO: [runtcl-4] Executing : report_timing_summary -max_paths 10 -file RegFile_timing_summary_routed.rpt -pb RegFile_timing_summary_routed.pb -rpx RegFile_timing_summary_routed.rpx -warn_on_violation +INFO: [Timing 38-91] UpdateTimingParams: Speed grade: -2L, Delay Type: min_max. +INFO: [Timing 38-191] Multithreading enabled for timing update using a maximum of 2 CPUs +WARNING: [Timing 38-313] There are no user specified timing constraints. Timing constraints are needed for proper timing analysis. +INFO: [runtcl-4] Executing : report_incremental_reuse -file RegFile_incremental_reuse_routed.rpt +INFO: [Vivado_Tcl 4-1062] Incremental flow is disabled. No incremental reuse Info to report. +INFO: [runtcl-4] Executing : report_clock_utilization -file RegFile_clock_utilization_routed.rpt +INFO: [runtcl-4] Executing : report_bus_skew -warn_on_violation -file RegFile_bus_skew_routed.rpt -pb RegFile_bus_skew_routed.pb -rpx RegFile_bus_skew_routed.rpx +INFO: [Timing 38-91] UpdateTimingParams: Speed grade: -2L, Delay Type: min_max. +INFO: [Timing 38-191] Multithreading enabled for timing update using a maximum of 2 CPUs +INFO: [Common 17-206] Exiting Vivado at Fri Feb 15 12:32:12 2019... diff --git a/lab2CA.runs/impl_1/RegFile_bus_skew_routed.pb b/lab2CA.runs/impl_1/RegFile_bus_skew_routed.pb new file mode 100644 index 0000000000000000000000000000000000000000..3390588d5da71a6f6866045d7ae5646edfab7b0e GIT binary patch literal 30 lcmd;LGcqu=&@-IGEZ|gHtWcbtTCPx(T3nh_Qapp10RVJW2(bVF literal 0 HcmV?d00001 diff --git a/lab2CA.runs/impl_1/RegFile_bus_skew_routed.rpt b/lab2CA.runs/impl_1/RegFile_bus_skew_routed.rpt new file mode 100644 index 0000000..259fe46 --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile_bus_skew_routed.rpt @@ -0,0 +1,15 @@ +Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +------------------------------------------------------------------------------------------------------------------------------------------------------ +| Tool Version : Vivado v.2018.3 (win64) Build 2405991 Thu Dec 6 23:38:27 MST 2018 +| Date : Fri Feb 15 12:32:12 2019 +| Host : DESKTOP-CSFKQTV running 64-bit major release (build 9200) +| Command : report_bus_skew -warn_on_violation -file RegFile_bus_skew_routed.rpt -pb RegFile_bus_skew_routed.pb -rpx RegFile_bus_skew_routed.rpx +| Design : RegFile +| Device : 7k160ti-fbg484 +| Speed File : -2L PRODUCTION 1.12 2017-02-17 +------------------------------------------------------------------------------------------------------------------------------------------------------ + +Bus Skew Report + +No bus skew constraints + diff --git a/lab2CA.runs/impl_1/RegFile_clock_utilization_routed.rpt b/lab2CA.runs/impl_1/RegFile_clock_utilization_routed.rpt new file mode 100644 index 0000000..3f881ea --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile_clock_utilization_routed.rpt @@ -0,0 +1,99 @@ +Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +------------------------------------------------------------------------------------------ +| Tool Version : Vivado v.2018.3 (win64) Build 2405991 Thu Dec 6 23:38:27 MST 2018 +| Date : Fri Feb 15 12:32:12 2019 +| Host : DESKTOP-CSFKQTV running 64-bit major release (build 9200) +| Command : report_clock_utilization -file RegFile_clock_utilization_routed.rpt +| Design : RegFile +| Device : 7k160ti-fbg484 +| Speed File : -2L PRODUCTION 1.12 2017-02-17 +| Temperature Grade : I +------------------------------------------------------------------------------------------ + +Clock Utilization Report + +Table of Contents +----------------- +1. Clock Primitive Utilization +2. Global Clock Resources +3. Global Clock Source Details +4. Clock Regions: Key Resource Utilization +5. Clock Regions : Global Clock Summary + +1. Clock Primitive Utilization +------------------------------ + ++----------+------+-----------+-----+--------------+--------+ +| Type | Used | Available | LOC | Clock Region | Pblock | ++----------+------+-----------+-----+--------------+--------+ +| BUFGCTRL | 0 | 32 | 0 | 0 | 0 | +| BUFH | 0 | 120 | 0 | 0 | 0 | +| BUFIO | 0 | 32 | 0 | 0 | 0 | +| BUFMR | 0 | 16 | 0 | 0 | 0 | +| BUFR | 0 | 32 | 0 | 0 | 0 | +| MMCM | 0 | 8 | 0 | 0 | 0 | +| PLL | 0 | 8 | 0 | 0 | 0 | ++----------+------+-----------+-----+--------------+--------+ + + +2. Global Clock Resources +------------------------- + ++-----------+-----------+-----------------+------------+------+--------------+-------------------+-------------+-----------------+--------------+-------+------------+-----+ +| Global Id | Source Id | Driver Type/Pin | Constraint | Site | Clock Region | Load Clock Region | Clock Loads | Non-Clock Loads | Clock Period | Clock | Driver Pin | Net | ++-----------+-----------+-----------------+------------+------+--------------+-------------------+-------------+-----------------+--------------+-------+------------+-----+ +* Clock Loads column represents the clock pin loads (pin count) +** Non-Clock Loads column represents the non-clock pin loads (pin count) + + +3. Global Clock Source Details +------------------------------ + ++-----------+-----------+-----------------+------------+------+--------------+-------------+-----------------+---------------------+--------------+------------+-----+ +| Source Id | Global Id | Driver Type/Pin | Constraint | Site | Clock Region | Clock Loads | Non-Clock Loads | Source Clock Period | Source Clock | Driver Pin | Net | ++-----------+-----------+-----------------+------------+------+--------------+-------------+-----------------+---------------------+--------------+------------+-----+ +* Clock Loads column represents the clock pin loads (pin count) +** Non-Clock Loads column represents the non-clock pin loads (pin count) + + +4. Clock Regions: Key Resource Utilization +------------------------------------------ + ++-------------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+ +| | Global Clock | BUFRs | BUFMRs | BUFIOs | MMCM | PLL | GT | PCI | ILOGIC | OLOGIC | FF | LUTM | RAMB18 | RAMB36 | DSP48E2 | ++-------------------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+ +| Clock Region Name | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | Used | Avail | ++-------------------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+ +| X0Y0 | 0 | 12 | 0 | 4 | 0 | 2 | 0 | 4 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 50 | 0 | 50 | 0 | 2800 | 0 | 850 | 0 | 60 | 0 | 30 | 0 | 60 | +| X1Y0 | 0 | 12 | 0 | 4 | 0 | 2 | 0 | 4 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 50 | 0 | 50 | 0 | 2700 | 0 | 950 | 0 | 80 | 0 | 40 | 0 | 60 | +| X0Y1 | 0 | 12 | 0 | 4 | 0 | 2 | 0 | 4 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 50 | 0 | 50 | 0 | 2800 | 0 | 850 | 0 | 60 | 0 | 30 | 0 | 60 | +| X1Y1 | 0 | 12 | 0 | 4 | 0 | 2 | 0 | 4 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 50 | 0 | 50 | 0 | 2700 | 0 | 950 | 0 | 80 | 0 | 40 | 0 | 60 | +| X0Y2 | 0 | 12 | 0 | 4 | 0 | 2 | 0 | 4 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 50 | 0 | 50 | 0 | 2200 | 0 | 850 | 0 | 60 | 0 | 30 | 0 | 60 | +| X1Y2 | 0 | 12 | 0 | 4 | 0 | 2 | 0 | 4 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 50 | 0 | 50 | 0 | 2700 | 0 | 950 | 0 | 80 | 0 | 40 | 0 | 60 | +| X0Y3 | 0 | 12 | 0 | 4 | 0 | 2 | 0 | 4 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 50 | 0 | 50 | 0 | 2200 | 0 | 850 | 0 | 60 | 0 | 30 | 0 | 60 | +| X1Y3 | 0 | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 2150 | 0 | 800 | 0 | 50 | 0 | 25 | 0 | 60 | +| X0Y4 | 0 | 12 | 0 | 4 | 0 | 2 | 0 | 4 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 50 | 0 | 50 | 0 | 2800 | 0 | 850 | 0 | 60 | 0 | 30 | 0 | 60 | +| X1Y4 | 0 | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2300 | 0 | 850 | 0 | 60 | 0 | 30 | 0 | 60 | ++-------------------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+------+-------+ +* Global Clock column represents track count; while other columns represents cell counts + + +5. Clock Regions : Global Clock Summary +--------------------------------------- + +All Modules ++----+----+----+ +| | X0 | X1 | ++----+----+----+ +| Y4 | 0 | 0 | +| Y3 | 0 | 0 | +| Y2 | 0 | 0 | +| Y1 | 0 | 0 | +| Y0 | 0 | 0 | ++----+----+----+ + + + +# Location of IO Primitives which is load of clock spine + +# Location of clock ports diff --git a/lab2CA.runs/impl_1/RegFile_control_sets_placed.rpt b/lab2CA.runs/impl_1/RegFile_control_sets_placed.rpt new file mode 100644 index 0000000..8387eee --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile_control_sets_placed.rpt @@ -0,0 +1,61 @@ +Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +------------------------------------------------------------------------------------ +| Tool Version : Vivado v.2018.3 (win64) Build 2405991 Thu Dec 6 23:38:27 MST 2018 +| Date : Fri Feb 15 12:31:34 2019 +| Host : DESKTOP-CSFKQTV running 64-bit major release (build 9200) +| Command : report_control_sets -verbose -file RegFile_control_sets_placed.rpt +| Design : RegFile +| Device : xc7k160ti +------------------------------------------------------------------------------------ + +Control Set Information + +Table of Contents +----------------- +1. Summary +2. Histogram +3. Flip-Flop Distribution +4. Detailed Control Set Information + +1. Summary +---------- + ++----------------------------------------------------------+-------+ +| Status | Count | ++----------------------------------------------------------+-------+ +| Number of unique control sets | 0 | +| Unused register locations in slices containing registers | 0 | ++----------------------------------------------------------+-------+ + + +2. Histogram +------------ + ++--------+--------------+ +| Fanout | Control Sets | ++--------+--------------+ + + +3. Flip-Flop Distribution +------------------------- + ++--------------+-----------------------+------------------------+-----------------+--------------+ +| Clock Enable | Synchronous Set/Reset | Asynchronous Set/Reset | Total Registers | Total Slices | ++--------------+-----------------------+------------------------+-----------------+--------------+ +| No | No | No | 0 | 0 | +| No | No | Yes | 0 | 0 | +| No | Yes | No | 0 | 0 | +| Yes | No | No | 0 | 0 | +| Yes | No | Yes | 0 | 0 | +| Yes | Yes | No | 0 | 0 | ++--------------+-----------------------+------------------------+-----------------+--------------+ + + +4. Detailed Control Set Information +----------------------------------- + ++--------------+---------------+------------------+------------------+----------------+ +| Clock Signal | Enable Signal | Set/Reset Signal | Slice Load Count | Bel Load Count | ++--------------+---------------+------------------+------------------+----------------+ + + diff --git a/lab2CA.runs/impl_1/RegFile_drc_opted.pb b/lab2CA.runs/impl_1/RegFile_drc_opted.pb new file mode 100644 index 0000000000000000000000000000000000000000..0158a2ad826bcd75c8436a6a29252340aee67559 GIT binary patch literal 37 scmd;LGcqtV(KDRH% + Ruledeck: default + Max violations: + Violations found: 3 ++----------+------------------+-----------------------------------------------------+------------+ +| Rule | Severity | Description | Violations | ++----------+------------------+-----------------------------------------------------+------------+ +| NSTD-1 | Critical Warning | Unspecified I/O Standard | 1 | +| UCIO-1 | Critical Warning | Unconstrained Logical Port | 1 | +| CFGBVS-1 | Warning | Missing CFGBVS and CONFIG_VOLTAGE Design Properties | 1 | ++----------+------------------+-----------------------------------------------------+------------+ + +2. REPORT DETAILS +----------------- +NSTD-1#1 Critical Warning +Unspecified I/O Standard +18 out of 18 logical ports use I/O standard (IOSTANDARD) value 'DEFAULT', instead of a user assigned specific value. This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all I/O standards. This design will fail to generate a bitstream unless all logical ports have a user specified I/O standard value defined. To allow bitstream creation with unspecified I/O standard values (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks NSTD-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: op0[8:0], op1[8:0]. +Related violations: + +UCIO-1#1 Critical Warning +Unconstrained Logical Port +18 out of 18 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all pin locations. This design will fail to generate a bitstream unless all logical ports have a user specified site LOC constraint defined. To allow bitstream creation with unspecified pin locations (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks UCIO-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: op0[8:0], op1[8:0]. +Related violations: + +CFGBVS-1#1 Warning +Missing CFGBVS and CONFIG_VOLTAGE Design Properties +Neither the CFGBVS nor CONFIG_VOLTAGE voltage property is set in the current_design. Configuration bank voltage select (CFGBVS) must be set to VCCO or GND, and CONFIG_VOLTAGE must be set to the correct configuration voltage, in order to determine the I/O voltage support for the pins in bank 0. It is suggested to specify these either using the 'Edit Device Properties' function in the GUI or directly in the XDC file using the following syntax: + + set_property CFGBVS value1 [current_design] + #where value1 is either VCCO or GND + + set_property CONFIG_VOLTAGE value2 [current_design] + #where value2 is the voltage provided to configuration bank 0 + +Refer to the device configuration user guide for more information. +Related violations: + + diff --git a/lab2CA.runs/impl_1/RegFile_drc_routed.pb b/lab2CA.runs/impl_1/RegFile_drc_routed.pb new file mode 100644 index 0000000000000000000000000000000000000000..0158a2ad826bcd75c8436a6a29252340aee67559 GIT binary patch literal 37 scmd;LGcqtV(KDRH% + Ruledeck: default + Max violations: + Violations found: 3 ++----------+------------------+-----------------------------------------------------+------------+ +| Rule | Severity | Description | Violations | ++----------+------------------+-----------------------------------------------------+------------+ +| NSTD-1 | Critical Warning | Unspecified I/O Standard | 1 | +| UCIO-1 | Critical Warning | Unconstrained Logical Port | 1 | +| CFGBVS-1 | Warning | Missing CFGBVS and CONFIG_VOLTAGE Design Properties | 1 | ++----------+------------------+-----------------------------------------------------+------------+ + +2. REPORT DETAILS +----------------- +NSTD-1#1 Critical Warning +Unspecified I/O Standard +18 out of 18 logical ports use I/O standard (IOSTANDARD) value 'DEFAULT', instead of a user assigned specific value. This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all I/O standards. This design will fail to generate a bitstream unless all logical ports have a user specified I/O standard value defined. To allow bitstream creation with unspecified I/O standard values (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks NSTD-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: op0[8:0], op1[8:0]. +Related violations: + +UCIO-1#1 Critical Warning +Unconstrained Logical Port +18 out of 18 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all pin locations. This design will fail to generate a bitstream unless all logical ports have a user specified site LOC constraint defined. To allow bitstream creation with unspecified pin locations (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks UCIO-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: op0[8:0], op1[8:0]. +Related violations: + +CFGBVS-1#1 Warning +Missing CFGBVS and CONFIG_VOLTAGE Design Properties +Neither the CFGBVS nor CONFIG_VOLTAGE voltage property is set in the current_design. Configuration bank voltage select (CFGBVS) must be set to VCCO or GND, and CONFIG_VOLTAGE must be set to the correct configuration voltage, in order to determine the I/O voltage support for the pins in bank 0. It is suggested to specify these either using the 'Edit Device Properties' function in the GUI or directly in the XDC file using the following syntax: + + set_property CFGBVS value1 [current_design] + #where value1 is either VCCO or GND + + set_property CONFIG_VOLTAGE value2 [current_design] + #where value2 is the voltage provided to configuration bank 0 + +Refer to the device configuration user guide for more information. +Related violations: + + diff --git a/lab2CA.runs/impl_1/RegFile_io_placed.rpt b/lab2CA.runs/impl_1/RegFile_io_placed.rpt new file mode 100644 index 0000000..1bcb8a0 --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile_io_placed.rpt @@ -0,0 +1,526 @@ +Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +------------------------------------------------------------------------------------------------- +| Tool Version : Vivado v.2018.3 (win64) Build 2405991 Thu Dec 6 23:38:27 MST 2018 +| Date : Fri Feb 15 12:31:34 2019 +| Host : DESKTOP-CSFKQTV running 64-bit major release (build 9200) +| Command : report_io -file RegFile_io_placed.rpt +| Design : RegFile +| Device : xc7k160ti +| Speed File : -2L +| Package : fbg484 +| Package Version : FINAL 2012-06-26 +| Package Pin Delay Version : VERS. 2.0 2012-06-26 +------------------------------------------------------------------------------------------------- + +IO Information + +Table of Contents +----------------- +1. Summary +2. IO Assignments by Package Pin + +1. Summary +---------- + ++---------------+ +| Total User IO | ++---------------+ +| 35 | ++---------------+ + + +2. IO Assignments by Package Pin +-------------------------------- + ++------------+-------------+------------------+------------------------------+---------------+-------------+---------+------------+------+---------------------+----------------------+-----------+------------+-----------+----------+------+------------------+--------------+-------------------+--------------+ +| Pin Number | Signal Name | Bank Type | Pin Name | Use | IO Standard | IO Bank | Drive (mA) | Slew | On-Chip Termination | Off-Chip Termination | Voltage | Constraint | Pull Type | DQS Bias | Vref | Signal Integrity | Pre Emphasis | Lvds Pre Emphasis | Equalization | ++------------+-------------+------------------+------------------------------+---------------+-------------+---------+------------+------+---------------------+----------------------+-----------+------------+-----------+----------+------+------------------+--------------+-------------------+--------------+ +| A1 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| A2 | | | MGTAVTT | Gigabit Power | | | | | | | | | | | | | | | | +| A3 | | | MGTXTXN3_115 | Gigabit | | | | | | | | | | | | | | | | +| A4 | | | MGTXTXP3_115 | Gigabit | | | | | | | | | | | | | | | | +| A5 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| A6 | | | MGTAVCC | Gigabit Power | | | | | | | | | | | | | | | | +| A7 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| A8 | | High Range | IO_L21N_T3_DQS_16 | User IO | | 16 | | | | | | | | | | | | | | +| A9 | | High Range | IO_L21P_T3_DQS_16 | User IO | | 16 | | | | | | | | | | | | | | +| A10 | | High Range | IO_L23N_T3_16 | User IO | | 16 | | | | | | | | | | | | | | +| A11 | | High Range | IO_L23P_T3_16 | User IO | | 16 | | | | | | | | | | | | | | +| A12 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| A13 | | High Range | IO_L4P_T0_AD9P_15 | User IO | | 15 | | | | | | | | | | | | | | +| A14 | | High Range | IO_L4N_T0_AD9N_15 | User IO | | 15 | | | | | | | | | | | | | | +| A15 | | High Range | IO_L9N_T1_DQS_AD11N_15 | User IO | | 15 | | | | | | | | | | | | | | +| A16 | | High Range | IO_L8N_T1_AD3N_15 | User IO | | 15 | | | | | | | | | | | | | | +| A17 | | High Range | VCCO_15 | VCCO | | 15 | | | | | any** | | | | | | | | | +| A18 | | High Range | IO_L10N_T1_AD4N_15 | User IO | | 15 | | | | | | | | | | | | | | +| A19 | | High Range | IO_L20N_T3_A19_15 | User IO | | 15 | | | | | | | | | | | | | | +| A20 | | High Range | IO_L22P_T3_A17_15 | User IO | | 15 | | | | | | | | | | | | | | +| A21 | | High Range | IO_L22N_T3_A16_15 | User IO | | 15 | | | | | | | | | | | | | | +| A22 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| AA1 | | High Performance | IO_L22P_T3_34 | User IO | | 34 | | | | | | | | | | | | | | +| AA2 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| AA3 | | High Performance | IO_L23P_T3_34 | User IO | | 34 | | | | | | | | | | | | | | +| AA4 | | High Performance | IO_L24P_T3_34 | User IO | | 34 | | | | | | | | | | | | | | +| AA5 | | High Performance | IO_L1P_T0_33 | User IO | | 33 | | | | | | | | | | | | | | +| AA6 | | High Performance | IO_L3P_T0_DQS_33 | User IO | | 33 | | | | | | | | | | | | | | +| AA7 | | High Performance | VCCO_33 | VCCO | | 33 | | | | | 0.00-1.80 | | | | | | | | | +| AA8 | | High Performance | IO_L5N_T0_33 | User IO | | 33 | | | | | | | | | | | | | | +| AA9 | | High Performance | IO_L5P_T0_33 | User IO | | 33 | | | | | | | | | | | | | | +| AA10 | | High Performance | IO_L4P_T0_33 | User IO | | 33 | | | | | | | | | | | | | | +| AA11 | | High Performance | IO_L20P_T3_33 | User IO | | 33 | | | | | | | | | | | | | | +| AA12 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| AA13 | | High Performance | IO_L21N_T3_DQS_33 | User IO | | 33 | | | | | | | | | | | | | | +| AA14 | op1[5] | High Range | IO_L18P_T2_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| AA15 | op1[4] | High Range | IO_L18N_T2_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| AA16 | op1[7] | High Range | IO_L17P_T2_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| AA17 | | High Range | VCCO_13 | VCCO | | 13 | | | | | 1.80 | | | | | | | | | +| AA18 | | High Range | IO_L15P_T2_DQS_13 | User IO | | 13 | | | | | | | | | | | | | | +| AA19 | | High Range | IO_L10P_T1_13 | User IO | | 13 | | | | | | | | | | | | | | +| AA20 | | High Range | IO_L8P_T1_13 | User IO | | 13 | | | | | | | | | | | | | | +| AA21 | | High Range | IO_L9P_T1_DQS_13 | User IO | | 13 | | | | | | | | | | | | | | +| AA22 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| AB1 | | High Performance | IO_L22N_T3_34 | User IO | | 34 | | | | | | | | | | | | | | +| AB2 | | High Performance | IO_L23N_T3_34 | User IO | | 34 | | | | | | | | | | | | | | +| AB3 | | High Performance | IO_L24N_T3_34 | User IO | | 34 | | | | | | | | | | | | | | +| AB4 | | High Performance | VCCO_34 | VCCO | | 34 | | | | | 0.00-1.80 | | | | | | | | | +| AB5 | | High Performance | IO_L1N_T0_33 | User IO | | 33 | | | | | | | | | | | | | | +| AB6 | | High Performance | IO_L3N_T0_DQS_33 | User IO | | 33 | | | | | | | | | | | | | | +| AB7 | | High Performance | IO_L2N_T0_33 | User IO | | 33 | | | | | | | | | | | | | | +| AB8 | | High Performance | IO_L2P_T0_33 | User IO | | 33 | | | | | | | | | | | | | | +| AB9 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| AB10 | | High Performance | IO_L4N_T0_33 | User IO | | 33 | | | | | | | | | | | | | | +| AB11 | | High Performance | IO_L20N_T3_33 | User IO | | 33 | | | | | | | | | | | | | | +| AB12 | | High Performance | IO_L22N_T3_33 | User IO | | 33 | | | | | | | | | | | | | | +| AB13 | | High Performance | IO_L22P_T3_33 | User IO | | 33 | | | | | | | | | | | | | | +| AB14 | | High Range | VCCO_13 | VCCO | | 13 | | | | | 1.80 | | | | | | | | | +| AB15 | | High Range | IO_L16P_T2_13 | User IO | | 13 | | | | | | | | | | | | | | +| AB16 | op1[8] | High Range | IO_L16N_T2_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| AB17 | op1[6] | High Range | IO_L17N_T2_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| AB18 | | High Range | IO_L15N_T2_DQS_13 | User IO | | 13 | | | | | | | | | | | | | | +| AB19 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| AB20 | | High Range | IO_L10N_T1_13 | User IO | | 13 | | | | | | | | | | | | | | +| AB21 | | High Range | IO_L8N_T1_13 | User IO | | 13 | | | | | | | | | | | | | | +| AB22 | | High Range | IO_L9N_T1_DQS_13 | User IO | | 13 | | | | | | | | | | | | | | +| B1 | | | MGTXTXN2_115 | Gigabit | | | | | | | | | | | | | | | | +| B2 | | | MGTXTXP2_115 | Gigabit | | | | | | | | | | | | | | | | +| B3 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| B4 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| B5 | | | MGTXRXN3_115 | Gigabit | | | | | | | | | | | | | | | | +| B6 | | | MGTXRXP3_115 | Gigabit | | | | | | | | | | | | | | | | +| B7 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| B8 | | High Range | IO_L22N_T3_16 | User IO | | 16 | | | | | | | | | | | | | | +| B9 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| B10 | | High Range | IO_L20N_T3_16 | User IO | | 16 | | | | | | | | | | | | | | +| B11 | | High Range | IO_L20P_T3_16 | User IO | | 16 | | | | | | | | | | | | | | +| B12 | | High Range | IO_L2N_T0_AD8N_15 | User IO | | 15 | | | | | | | | | | | | | | +| B13 | | High Range | IO_L5N_T0_AD2N_15 | User IO | | 15 | | | | | | | | | | | | | | +| B14 | | High Range | VCCO_15 | VCCO | | 15 | | | | | any** | | | | | | | | | +| B15 | | High Range | IO_L9P_T1_DQS_AD11P_15 | User IO | | 15 | | | | | | | | | | | | | | +| B16 | | High Range | IO_L8P_T1_AD3P_15 | User IO | | 15 | | | | | | | | | | | | | | +| B17 | | High Range | IO_L10P_T1_AD4P_15 | User IO | | 15 | | | | | | | | | | | | | | +| B18 | | High Range | IO_L20P_T3_A20_15 | User IO | | 15 | | | | | | | | | | | | | | +| B19 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| B20 | | High Range | IO_L24P_T3_RS1_15 | User IO | | 15 | | | | | | | | | | | | | | +| B21 | | High Range | IO_L24N_T3_RS0_15 | User IO | | 15 | | | | | | | | | | | | | | +| B22 | | High Range | IO_L21N_T3_DQS_A18_15 | User IO | | 15 | | | | | | | | | | | | | | +| C1 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| C2 | | | MGTAVTT | Gigabit Power | | | | | | | | | | | | | | | | +| C3 | | | MGTXRXN2_115 | Gigabit | | | | | | | | | | | | | | | | +| C4 | | | MGTXRXP2_115 | Gigabit | | | | | | | | | | | | | | | | +| C5 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| C6 | | | MGTAVCC | Gigabit Power | | | | | | | | | | | | | | | | +| C7 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| C8 | | High Range | IO_L22P_T3_16 | User IO | | 16 | | | | | | | | | | | | | | +| C9 | | High Range | IO_L19N_T3_VREF_16 | User IO | | 16 | | | | | | | | | | | | | | +| C10 | | High Range | IO_L7N_T1_16 | User IO | | 16 | | | | | | | | | | | | | | +| C11 | | High Range | VCCO_16 | VCCO | | 16 | | | | | any** | | | | | | | | | +| C12 | | High Range | IO_L2P_T0_AD8P_15 | User IO | | 15 | | | | | | | | | | | | | | +| C13 | | High Range | IO_L5P_T0_AD2P_15 | User IO | | 15 | | | | | | | | | | | | | | +| C14 | | High Range | IO_L7P_T1_AD10P_15 | User IO | | 15 | | | | | | | | | | | | | | +| C15 | | High Range | IO_L7N_T1_AD10N_15 | User IO | | 15 | | | | | | | | | | | | | | +| C16 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| C17 | | High Range | IO_L12P_T1_MRCC_AD5P_15 | User IO | | 15 | | | | | | | | | | | | | | +| C18 | | High Range | IO_L12N_T1_MRCC_AD5N_15 | User IO | | 15 | | | | | | | | | | | | | | +| C19 | | High Range | IO_L19P_T3_A22_15 | User IO | | 15 | | | | | | | | | | | | | | +| C20 | | High Range | IO_L19N_T3_A21_VREF_15 | User IO | | 15 | | | | | | | | | | | | | | +| C21 | | High Range | VCCO_15 | VCCO | | 15 | | | | | any** | | | | | | | | | +| C22 | | High Range | IO_L21P_T3_DQS_15 | User IO | | 15 | | | | | | | | | | | | | | +| D1 | | | MGTXTXN1_115 | Gigabit | | | | | | | | | | | | | | | | +| D2 | | | MGTXTXP1_115 | Gigabit | | | | | | | | | | | | | | | | +| D3 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| D4 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| D5 | | | MGTREFCLK0N_115 | Gigabit | | | | | | | | | | | | | | | | +| D6 | | | MGTREFCLK0P_115 | Gigabit | | | | | | | | | | | | | | | | +| D7 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| D8 | | High Range | VCCO_16 | VCCO | | 16 | | | | | any** | | | | | | | | | +| D9 | | High Range | IO_L19P_T3_16 | User IO | | 16 | | | | | | | | | | | | | | +| D10 | | High Range | IO_L7P_T1_16 | User IO | | 16 | | | | | | | | | | | | | | +| D11 | | High Range | IO_L12N_T1_MRCC_16 | User IO | | 16 | | | | | | | | | | | | | | +| D12 | | High Range | IO_0_15 | User IO | | 15 | | | | | | | | | | | | | | +| D13 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| D14 | | High Range | IO_L6N_T0_VREF_15 | User IO | | 15 | | | | | | | | | | | | | | +| D15 | | High Range | IO_L11P_T1_SRCC_AD12P_15 | User IO | | 15 | | | | | | | | | | | | | | +| D16 | | High Range | IO_L11N_T1_SRCC_AD12N_15 | User IO | | 15 | | | | | | | | | | | | | | +| D17 | | High Range | IO_L14N_T2_SRCC_15 | User IO | | 15 | | | | | | | | | | | | | | +| D18 | | High Range | VCCO_15 | VCCO | | 15 | | | | | any** | | | | | | | | | +| D19 | | High Range | IO_L18P_T2_A24_15 | User IO | | 15 | | | | | | | | | | | | | | +| D20 | | High Range | IO_L18N_T2_A23_15 | User IO | | 15 | | | | | | | | | | | | | | +| D21 | | High Range | IO_L23P_T3_FOE_B_15 | User IO | | 15 | | | | | | | | | | | | | | +| D22 | | High Range | IO_L23N_T3_FWE_B_15 | User IO | | 15 | | | | | | | | | | | | | | +| E1 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| E2 | | | MGTAVTT | Gigabit Power | | | | | | | | | | | | | | | | +| E3 | | | MGTXRXN1_115 | Gigabit | | | | | | | | | | | | | | | | +| E4 | | | MGTXRXP1_115 | Gigabit | | | | | | | | | | | | | | | | +| E5 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| E6 | | | MGTAVCC | Gigabit Power | | | | | | | | | | | | | | | | +| E7 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| E8 | | High Range | IO_24_T3_16 | User IO | | 16 | | | | | | | | | | | | | | +| E9 | | High Range | IO_L15N_T2_DQS_16 | User IO | | 16 | | | | | | | | | | | | | | +| E10 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| E11 | | High Range | IO_L12P_T1_MRCC_16 | User IO | | 16 | | | | | | | | | | | | | | +| E12 | | High Range | IO_L10N_T1_16 | User IO | | 16 | | | | | | | | | | | | | | +| E13 | | High Range | IO_L10P_T1_16 | User IO | | 16 | | | | | | | | | | | | | | +| E14 | | High Range | IO_L6P_T0_15 | User IO | | 15 | | | | | | | | | | | | | | +| E15 | | High Range | VCCO_15 | VCCO | | 15 | | | | | any** | | | | | | | | | +| E16 | | High Range | IO_L14P_T2_SRCC_15 | User IO | | 15 | | | | | | | | | | | | | | +| E17 | | High Range | IO_L13P_T2_MRCC_15 | User IO | | 15 | | | | | | | | | | | | | | +| E18 | | High Range | IO_L13N_T2_MRCC_15 | User IO | | 15 | | | | | | | | | | | | | | +| E19 | | High Range | IO_L17N_T2_A25_15 | User IO | | 15 | | | | | | | | | | | | | | +| E20 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| E21 | | High Range | IO_L7P_T1_D09_14 | User IO | | 14 | | | | | | | | | | | | | | +| E22 | | High Range | IO_L7N_T1_D10_14 | User IO | | 14 | | | | | | | | | | | | | | +| F1 | | | MGTXTXN0_115 | Gigabit | | | | | | | | | | | | | | | | +| F2 | | | MGTXTXP0_115 | Gigabit | | | | | | | | | | | | | | | | +| F3 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| F4 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| F5 | | | MGTREFCLK1N_115 | Gigabit | | | | | | | | | | | | | | | | +| F6 | | | MGTREFCLK1P_115 | Gigabit | | | | | | | | | | | | | | | | +| F7 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| F8 | | High Range | IO_L17N_T2_16 | User IO | | 16 | | | | | | | | | | | | | | +| F9 | | High Range | IO_L15P_T2_DQS_16 | User IO | | 16 | | | | | | | | | | | | | | +| F10 | | High Range | IO_L11N_T1_SRCC_16 | User IO | | 16 | | | | | | | | | | | | | | +| F11 | | High Range | IO_L11P_T1_SRCC_16 | User IO | | 16 | | | | | | | | | | | | | | +| F12 | | High Range | VCCO_16 | VCCO | | 16 | | | | | any** | | | | | | | | | +| F13 | | High Range | IO_L8N_T1_16 | User IO | | 16 | | | | | | | | | | | | | | +| F14 | | High Range | IO_6_T0_VREF_16 | User IO | | 16 | | | | | | | | | | | | | | +| F15 | | High Range | IO_L3P_T0_DQS_AD1P_15 | User IO | | 15 | | | | | | | | | | | | | | +| F16 | | High Range | IO_L3N_T0_DQS_AD1N_15 | User IO | | 15 | | | | | | | | | | | | | | +| F17 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| F18 | | High Range | IO_L17P_T2_A26_15 | User IO | | 15 | | | | | | | | | | | | | | +| F19 | | High Range | IO_L2N_T0_D03_14 | User IO | | 14 | | | | | | | | | | | | | | +| F20 | | High Range | IO_L4N_T0_D05_14 | User IO | | 14 | | | | | | | | | | | | | | +| F21 | | High Range | IO_L9N_T1_DQS_D13_14 | User IO | | 14 | | | | | | | | | | | | | | +| F22 | | High Range | VCCO_14 | VCCO | | 14 | | | | | any** | | | | | | | | | +| G1 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| G2 | | | MGTAVTT | Gigabit Power | | | | | | | | | | | | | | | | +| G3 | | | MGTXRXN0_115 | Gigabit | | | | | | | | | | | | | | | | +| G4 | | | MGTXRXP0_115 | Gigabit | | | | | | | | | | | | | | | | +| G5 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| G6 | | | MGTAVCC | Gigabit Power | | | | | | | | | | | | | | | | +| G7 | | Dedicated | CCLK_0 | Config | | 0 | | | | | | | | | | | | | | +| G8 | | High Range | IO_L17P_T2_16 | User IO | | 16 | | | | | | | | | | | | | | +| G9 | | High Range | VCCO_16 | VCCO | | 16 | | | | | any** | | | | | | | | | +| G10 | | High Range | IO_L13N_T2_MRCC_16 | User IO | | 16 | | | | | | | | | | | | | | +| G11 | | High Range | IO_L13P_T2_MRCC_16 | User IO | | 16 | | | | | | | | | | | | | | +| G12 | | High Range | IO_L14N_T2_SRCC_16 | User IO | | 16 | | | | | | | | | | | | | | +| G13 | | High Range | IO_L8P_T1_16 | User IO | | 16 | | | | | | | | | | | | | | +| G14 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| G15 | | High Range | IO_L1P_T0_AD0P_15 | User IO | | 15 | | | | | | | | | | | | | | +| G16 | | High Range | IO_L1N_T0_AD0N_15 | User IO | | 15 | | | | | | | | | | | | | | +| G17 | | High Range | IO_L15N_T2_DQS_ADV_B_15 | User IO | | 15 | | | | | | | | | | | | | | +| G18 | | High Range | IO_L2P_T0_D02_14 | User IO | | 14 | | | | | | | | | | | | | | +| G19 | | High Range | VCCO_14 | VCCO | | 14 | | | | | any** | | | | | | | | | +| G20 | | High Range | IO_L4P_T0_D04_14 | User IO | | 14 | | | | | | | | | | | | | | +| G21 | | High Range | IO_L9P_T1_DQS_14 | User IO | | 14 | | | | | | | | | | | | | | +| G22 | | High Range | IO_L8N_T1_D12_14 | User IO | | 14 | | | | | | | | | | | | | | +| H1 | | | MGTAVTTRCAL_115 | Gigabit | | | | | | | | | | | | | | | | +| H2 | | | MGTRREF_115 | Gigabit | | | | | | | | | | | | | | | | +| H3 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| H4 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| H5 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| H6 | | Dedicated | M1_0 | Config | | 0 | | | | | | | | | | | | | | +| H7 | | Dedicated | M0_0 | Config | | 0 | | | | | | | | | | | | | | +| H8 | | High Range | IO_L16N_T2_16 | User IO | | 16 | | | | | | | | | | | | | | +| H9 | | High Range | IO_L16P_T2_16 | User IO | | 16 | | | | | | | | | | | | | | +| H10 | | High Range | IO_18_T2_16 | User IO | | 16 | | | | | | | | | | | | | | +| H11 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| H12 | | High Range | IO_L14P_T2_SRCC_16 | User IO | | 16 | | | | | | | | | | | | | | +| H13 | | High Range | IO_L9N_T1_DQS_16 | User IO | | 16 | | | | | | | | | | | | | | +| H14 | | High Range | IO_L9P_T1_DQS_16 | User IO | | 16 | | | | | | | | | | | | | | +| H15 | | High Range | IO_25_15 | User IO | | 15 | | | | | | | | | | | | | | +| H16 | | High Range | VCCO_15 | VCCO | | 15 | | | | | any** | | | | | | | | | +| H17 | | High Range | IO_L15P_T2_DQS_15 | User IO | | 15 | | | | | | | | | | | | | | +| H18 | | High Range | IO_L1P_T0_D00_MOSI_14 | User IO | | 14 | | | | | | | | | | | | | | +| H19 | | High Range | IO_L1N_T0_D01_DIN_14 | User IO | | 14 | | | | | | | | | | | | | | +| H20 | | High Range | IO_L11N_T1_SRCC_14 | User IO | | 14 | | | | | | | | | | | | | | +| H21 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| H22 | | High Range | IO_L8P_T1_D11_14 | User IO | | 14 | | | | | | | | | | | | | | +| J1 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| J2 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| J3 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| J4 | | | MGTVCCAUX | Gigabit Power | | | | | | | | | | | | | | | | +| J5 | | Dedicated | M2_0 | Config | | 0 | | | | | | | | | | | | | | +| J6 | | Dedicated | TDO_0 | Config | | 0 | | | | | | | | | | | | | | +| J7 | | Dedicated | VCCO_0 | VCCO | | 0 | | | | | any** | | | | | | | | | +| J8 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| J9 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| J10 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| J11 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| J12 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| J13 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| J14 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| J15 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| J16 | | High Range | IO_L16P_T2_A28_15 | User IO | | 15 | | | | | | | | | | | | | | +| J17 | | High Range | IO_L16N_T2_A27_15 | User IO | | 15 | | | | | | | | | | | | | | +| J18 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| J19 | | High Range | IO_L3N_T0_DQS_EMCCLK_14 | User IO | | 14 | | | | | | | | | | | | | | +| J20 | | High Range | IO_L11P_T1_SRCC_14 | User IO | | 14 | | | | | | | | | | | | | | +| J21 | | High Range | IO_L10P_T1_D14_14 | User IO | | 14 | | | | | | | | | | | | | | +| J22 | | High Range | IO_L10N_T1_D15_14 | User IO | | 14 | | | | | | | | | | | | | | +| K1 | | High Performance | IO_L2P_T0_34 | User IO | | 34 | | | | | | | | | | | | | | +| K2 | | High Performance | IO_L4N_T0_34 | User IO | | 34 | | | | | | | | | | | | | | +| K3 | | High Performance | IO_L4P_T0_34 | User IO | | 34 | | | | | | | | | | | | | | +| K4 | | High Performance | IO_0_VRN_34 | User IO | | 34 | | | | | | | | | | | | | | +| K5 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| K6 | | Dedicated | TDI_0 | Config | | 0 | | | | | | | | | | | | | | +| K7 | | Dedicated | TCK_0 | Config | | 0 | | | | | | | | | | | | | | +| K8 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| K9 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| K10 | | | VCCAUX | VCCAUX | | | | | | | 1.80 | | | | | | | | | +| K11 | | Dedicated | GNDADC_0 | XADC | | 0 | | | | | | | | | | | | | | +| K12 | | Dedicated | VCCADC_0 | XADC | | 0 | | | | | | | | | | | | | | +| K13 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| K14 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| K15 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| K16 | | High Range | IO_0_14 | User IO | | 14 | | | | | | | | | | | | | | +| K17 | | High Range | IO_L6N_T0_D08_VREF_14 | User IO | | 14 | | | | | | | | | | | | | | +| K18 | | High Range | IO_L3P_T0_DQS_PUDC_B_14 | User IO | | 14 | | | | | | | | | | | | | | +| K19 | | High Range | IO_L5N_T0_D07_14 | User IO | | 14 | | | | | | | | | | | | | | +| K20 | | High Range | VCCO_14 | VCCO | | 14 | | | | | any** | | | | | | | | | +| K21 | | High Range | IO_L16P_T2_CSI_B_14 | User IO | | 14 | | | | | | | | | | | | | | +| K22 | | High Range | IO_L16N_T2_A15_D31_14 | User IO | | 14 | | | | | | | | | | | | | | +| L1 | | High Performance | IO_L2N_T0_34 | User IO | | 34 | | | | | | | | | | | | | | +| L2 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| L3 | | High Performance | IO_L1P_T0_34 | User IO | | 34 | | | | | | | | | | | | | | +| L4 | | High Performance | IO_L6N_T0_VREF_34 | User IO | | 34 | | | | | | | | | | | | | | +| L5 | | High Performance | IO_L6P_T0_34 | User IO | | 34 | | | | | | | | | | | | | | +| L6 | | Dedicated | TMS_0 | Config | | 0 | | | | | | | | | | | | | | +| L7 | | Dedicated | INIT_B_0 | Config | | 0 | | | | | | | | | | | | | | +| L8 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| L9 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| L10 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| L11 | | Dedicated | VREFN_0 | XADC | | 0 | | | | | | | | | | | | | | +| L12 | | Dedicated | VP_0 | XADC | | 0 | | | | | | | | | | | | | | +| L13 | | | VCCBRAM | VCCBRAM | | | | | | | | | | | | | | | | +| L14 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| L15 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| L16 | | High Range | IO_L6P_T0_FCS_B_14 | User IO | | 14 | | | | | | | | | | | | | | +| L17 | | High Range | VCCO_14 | VCCO | | 14 | | | | | any** | | | | | | | | | +| L18 | | High Range | IO_L5P_T0_D06_14 | User IO | | 14 | | | | | | | | | | | | | | +| L19 | | High Range | IO_L12P_T1_MRCC_14 | User IO | | 14 | | | | | | | | | | | | | | +| L20 | | High Range | IO_L12N_T1_MRCC_14 | User IO | | 14 | | | | | | | | | | | | | | +| L21 | | High Range | IO_L18N_T2_A11_D27_14 | User IO | | 14 | | | | | | | | | | | | | | +| L22 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| M1 | | High Performance | IO_L3N_T0_DQS_34 | User IO | | 34 | | | | | | | | | | | | | | +| M2 | | High Performance | IO_L3P_T0_DQS_34 | User IO | | 34 | | | | | | | | | | | | | | +| M3 | | High Performance | IO_L1N_T0_34 | User IO | | 34 | | | | | | | | | | | | | | +| M4 | | High Performance | VCCO_34 | VCCO | | 34 | | | | | 0.00-1.80 | | | | | | | | | +| M5 | | High Performance | IO_L9P_T1_DQS_34 | User IO | | 34 | | | | | | | | | | | | | | +| M6 | | Dedicated | PROGRAM_B_0 | Config | | 0 | | | | | | | | | | | | | | +| M7 | | Dedicated | CFGBVS_0 | Config | | 0 | | | | | | | | | | | | | | +| M8 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| M9 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| M10 | | | VCCAUX | VCCAUX | | | | | | | 1.80 | | | | | | | | | +| M11 | | Dedicated | VN_0 | XADC | | 0 | | | | | | | | | | | | | | +| M12 | | Dedicated | VREFP_0 | XADC | | 0 | | | | | | | | | | | | | | +| M13 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| M14 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| M15 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| M16 | | High Range | IO_25_14 | User IO | | 14 | | | | | | | | | | | | | | +| M17 | | High Range | IO_L14P_T2_SRCC_14 | User IO | | 14 | | | | | | | | | | | | | | +| M18 | | High Range | IO_L14N_T2_SRCC_14 | User IO | | 14 | | | | | | | | | | | | | | +| M19 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| M20 | | High Range | IO_L18P_T2_A12_D28_14 | User IO | | 14 | | | | | | | | | | | | | | +| M21 | | High Range | IO_L17N_T2_A13_D29_14 | User IO | | 14 | | | | | | | | | | | | | | +| M22 | | High Range | IO_L15N_T2_DQS_DOUT_CSO_B_14 | User IO | | 14 | | | | | | | | | | | | | | +| N1 | | High Performance | VCCO_34 | VCCO | | 34 | | | | | 0.00-1.80 | | | | | | | | | +| N2 | | High Performance | IO_L5N_T0_34 | User IO | | 34 | | | | | | | | | | | | | | +| N3 | | High Performance | IO_L5P_T0_34 | User IO | | 34 | | | | | | | | | | | | | | +| N4 | | High Performance | IO_L9N_T1_DQS_34 | User IO | | 34 | | | | | | | | | | | | | | +| N5 | | High Performance | IO_L18P_T2_34 | User IO | | 34 | | | | | | | | | | | | | | +| N6 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| N7 | | Dedicated | VCCO_0 | VCCO | | 0 | | | | | any** | | | | | | | | | +| N8 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| N9 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| N10 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| N11 | | Dedicated | DXN_0 | Temp Sensor | | 0 | | | | | | | | | | | | | | +| N12 | | Dedicated | DXP_0 | Temp Sensor | | 0 | | | | | | | | | | | | | | +| N13 | | | VCCBRAM | VCCBRAM | | | | | | | | | | | | | | | | +| N14 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| N15 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| N16 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| N17 | | High Range | IO_L23N_T3_A02_D18_14 | User IO | | 14 | | | | | | | | | | | | | | +| N18 | | High Range | IO_L13P_T2_MRCC_14 | User IO | | 14 | | | | | | | | | | | | | | +| N19 | | High Range | IO_L13N_T2_MRCC_14 | User IO | | 14 | | | | | | | | | | | | | | +| N20 | | High Range | IO_L17P_T2_A14_D30_14 | User IO | | 14 | | | | | | | | | | | | | | +| N21 | | High Range | VCCO_14 | VCCO | | 14 | | | | | any** | | | | | | | | | +| N22 | | High Range | IO_L15P_T2_DQS_RDWR_B_14 | User IO | | 14 | | | | | | | | | | | | | | +| P1 | | High Performance | IO_L8P_T1_34 | User IO | | 34 | | | | | | | | | | | | | | +| P2 | | High Performance | IO_L7P_T1_34 | User IO | | 34 | | | | | | | | | | | | | | +| P3 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| P4 | | High Performance | IO_L11P_T1_SRCC_34 | User IO | | 34 | | | | | | | | | | | | | | +| P5 | | High Performance | IO_L18N_T2_34 | User IO | | 34 | | | | | | | | | | | | | | +| P6 | | Dedicated | DONE_0 | Config | | 0 | | | | | | | | | | | | | | +| P7 | | Dedicated | VCCBATT_0 | Config | | 0 | | | | | | | | | | | | | | +| P8 | | | VCCAUX | VCCAUX | | | | | | | 1.80 | | | | | | | | | +| P9 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| P10 | | | VCCAUX | VCCAUX | | | | | | | 1.80 | | | | | | | | | +| P11 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| P12 | | | VCCAUX | VCCAUX | | | | | | | 1.80 | | | | | | | | | +| P13 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| P14 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| P15 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| P16 | | High Range | IO_L23P_T3_A03_D19_14 | User IO | | 14 | | | | | | | | | | | | | | +| P17 | | High Range | IO_L21N_T3_DQS_A06_D22_14 | User IO | | 14 | | | | | | | | | | | | | | +| P18 | | High Range | VCCO_14 | VCCO | | 14 | | | | | any** | | | | | | | | | +| P19 | | High Range | IO_L20P_T3_A08_D24_14 | User IO | | 14 | | | | | | | | | | | | | | +| P20 | | High Range | IO_L20N_T3_A07_D23_14 | User IO | | 14 | | | | | | | | | | | | | | +| P21 | | High Range | IO_L22P_T3_A05_D21_14 | User IO | | 14 | | | | | | | | | | | | | | +| P22 | | High Range | IO_L22N_T3_A04_D20_14 | User IO | | 14 | | | | | | | | | | | | | | +| R1 | | High Performance | IO_L8N_T1_34 | User IO | | 34 | | | | | | | | | | | | | | +| R2 | | High Performance | IO_L7N_T1_34 | User IO | | 34 | | | | | | | | | | | | | | +| R3 | | High Performance | IO_L12P_T1_MRCC_34 | User IO | | 34 | | | | | | | | | | | | | | +| R4 | | High Performance | IO_L11N_T1_SRCC_34 | User IO | | 34 | | | | | | | | | | | | | | +| R5 | | High Performance | VCCO_34 | VCCO | | 34 | | | | | 0.00-1.80 | | | | | | | | | +| R6 | | High Performance | IO_L8N_T1_33 | User IO | | 33 | | | | | | | | | | | | | | +| R7 | | High Performance | IO_L8P_T1_33 | User IO | | 33 | | | | | | | | | | | | | | +| R8 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| R9 | | | VCCAUX | VCCAUX | | | | | | | 1.80 | | | | | | | | | +| R10 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| R11 | | | VCCAUX | VCCAUX | | | | | | | 1.80 | | | | | | | | | +| R12 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| R13 | | | VCCBRAM | VCCBRAM | | | | | | | | | | | | | | | | +| R14 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| R15 | | | VCCINT | VCCINT | | | | | | | | | | | | | | | | +| R16 | op1[1] | High Range | IO_L20P_T3_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| R17 | | High Range | IO_L21P_T3_DQS_14 | User IO | | 14 | | | | | | | | | | | | | | +| R18 | | High Range | IO_L19P_T3_A10_D26_14 | User IO | | 14 | | | | | | | | | | | | | | +| R19 | | High Range | IO_L19N_T3_A09_D25_VREF_14 | User IO | | 14 | | | | | | | | | | | | | | +| R20 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| R21 | | High Range | IO_L24P_T3_A01_D17_14 | User IO | | 14 | | | | | | | | | | | | | | +| R22 | | High Range | IO_L24N_T3_A00_D16_14 | User IO | | 14 | | | | | | | | | | | | | | +| T1 | | High Performance | IO_L10P_T1_34 | User IO | | 34 | | | | | | | | | | | | | | +| T2 | | High Performance | VCCO_34 | VCCO | | 34 | | | | | 0.00-1.80 | | | | | | | | | +| T3 | | High Performance | IO_L12N_T1_MRCC_34 | User IO | | 34 | | | | | | | | | | | | | | +| T4 | | High Performance | IO_L13P_T2_MRCC_34 | User IO | | 34 | | | | | | | | | | | | | | +| T5 | | High Performance | IO_L16P_T2_34 | User IO | | 34 | | | | | | | | | | | | | | +| T6 | | High Performance | IO_0_VRN_33 | User IO | | 33 | | | | | | | | | | | | | | +| T7 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| T8 | | High Performance | IO_L18N_T2_33 | User IO | | 33 | | | | | | | | | | | | | | +| T9 | | High Performance | IO_L18P_T2_33 | User IO | | 33 | | | | | | | | | | | | | | +| T10 | | High Performance | IO_L16N_T2_33 | User IO | | 33 | | | | | | | | | | | | | | +| T11 | | High Performance | IO_L16P_T2_33 | User IO | | 33 | | | | | | | | | | | | | | +| T12 | | High Performance | VCCO_33 | VCCO | | 33 | | | | | 0.00-1.80 | | | | | | | | | +| T13 | | High Performance | IO_L24P_T3_33 | User IO | | 33 | | | | | | | | | | | | | | +| T14 | | High Performance | IO_25_VRP_33 | User IO | | 33 | | | | | | | | | | | | | | +| T15 | op0[2] | High Range | IO_L24P_T3_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| T16 | op1[0] | High Range | IO_L20N_T3_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| T17 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| T18 | | High Range | IO_L3P_T0_DQS_13 | User IO | | 13 | | | | | | | | | | | | | | +| T19 | | High Range | IO_0_13 | User IO | | 13 | | | | | | | | | | | | | | +| T20 | | High Range | IO_L6P_T0_13 | User IO | | 13 | | | | | | | | | | | | | | +| T21 | | High Range | IO_L1P_T0_13 | User IO | | 13 | | | | | | | | | | | | | | +| T22 | | High Range | VCCO_13 | VCCO | | 13 | | | | | 1.80 | | | | | | | | | +| U1 | | High Performance | IO_L10N_T1_34 | User IO | | 34 | | | | | | | | | | | | | | +| U2 | | High Performance | IO_L15P_T2_DQS_34 | User IO | | 34 | | | | | | | | | | | | | | +| U3 | | High Performance | IO_L13N_T2_MRCC_34 | User IO | | 34 | | | | | | | | | | | | | | +| U4 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| U5 | | High Performance | IO_L16N_T2_34 | User IO | | 34 | | | | | | | | | | | | | | +| U6 | | High Performance | IO_L10N_T1_33 | User IO | | 33 | | | | | | | | | | | | | | +| U7 | | High Performance | IO_L10P_T1_33 | User IO | | 33 | | | | | | | | | | | | | | +| U8 | | High Performance | IO_L9P_T1_DQS_33 | User IO | | 33 | | | | | | | | | | | | | | +| U9 | | High Performance | VCCO_33 | VCCO | | 33 | | | | | 0.00-1.80 | | | | | | | | | +| U10 | | High Performance | IO_L14P_T2_SRCC_33 | User IO | | 33 | | | | | | | | | | | | | | +| U11 | | High Performance | IO_L17N_T2_33 | User IO | | 33 | | | | | | | | | | | | | | +| U12 | | High Performance | IO_L17P_T2_33 | User IO | | 33 | | | | | | | | | | | | | | +| U13 | | High Performance | IO_L24N_T3_33 | User IO | | 33 | | | | | | | | | | | | | | +| U14 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| U15 | op0[1] | High Range | IO_L24N_T3_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| U16 | op1[3] | High Range | IO_L19P_T3_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| U17 | | High Range | IO_L5P_T0_13 | User IO | | 13 | | | | | | | | | | | | | | +| U18 | | High Range | IO_L3N_T0_DQS_13 | User IO | | 13 | | | | | | | | | | | | | | +| U19 | | High Range | VCCO_13 | VCCO | | 13 | | | | | 1.80 | | | | | | | | | +| U20 | | High Range | IO_L6N_T0_VREF_13 | User IO | | 13 | | | | | | | | | | | | | | +| U21 | | High Range | IO_L1N_T0_13 | User IO | | 13 | | | | | | | | | | | | | | +| U22 | | High Range | IO_L2P_T0_13 | User IO | | 13 | | | | | | | | | | | | | | +| V1 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| V2 | | High Performance | IO_L15N_T2_DQS_34 | User IO | | 34 | | | | | | | | | | | | | | +| V3 | | High Performance | IO_L17P_T2_34 | User IO | | 34 | | | | | | | | | | | | | | +| V4 | | High Performance | IO_L14P_T2_SRCC_34 | User IO | | 34 | | | | | | | | | | | | | | +| V5 | | High Performance | IO_25_VRP_34 | User IO | | 34 | | | | | | | | | | | | | | +| V6 | | High Performance | VCCO_33 | VCCO | | 33 | | | | | 0.00-1.80 | | | | | | | | | +| V7 | | High Performance | IO_L11P_T1_SRCC_33 | User IO | | 33 | | | | | | | | | | | | | | +| V8 | | High Performance | IO_L9N_T1_DQS_33 | User IO | | 33 | | | | | | | | | | | | | | +| V9 | | High Performance | IO_L14N_T2_SRCC_33 | User IO | | 33 | | | | | | | | | | | | | | +| V10 | | High Performance | IO_L15P_T2_DQS_33 | User IO | | 33 | | | | | | | | | | | | | | +| V11 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| V12 | | High Performance | IO_L23N_T3_33 | User IO | | 33 | | | | | | | | | | | | | | +| V13 | | High Performance | IO_L23P_T3_33 | User IO | | 33 | | | | | | | | | | | | | | +| V14 | op0[0] | High Range | IO_25_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| V15 | op0[4] | High Range | IO_L23P_T3_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| V16 | | High Range | VCCO_13 | VCCO | | 13 | | | | | 1.80 | | | | | | | | | +| V17 | op1[2] | High Range | IO_L19N_T3_VREF_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| V18 | | High Range | IO_L5N_T0_13 | User IO | | 13 | | | | | | | | | | | | | | +| V19 | | High Range | IO_L12P_T1_MRCC_13 | User IO | | 13 | | | | | | | | | | | | | | +| V20 | | High Range | IO_L11P_T1_SRCC_13 | User IO | | 13 | | | | | | | | | | | | | | +| V21 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| V22 | | High Range | IO_L2N_T0_13 | User IO | | 13 | | | | | | | | | | | | | | +| W1 | | High Performance | IO_L20P_T3_34 | User IO | | 34 | | | | | | | | | | | | | | +| W2 | | High Performance | IO_L17N_T2_34 | User IO | | 34 | | | | | | | | | | | | | | +| W3 | | High Performance | VCCO_34 | VCCO | | 34 | | | | | 0.00-1.80 | | | | | | | | | +| W4 | | High Performance | IO_L14N_T2_SRCC_34 | User IO | | 34 | | | | | | | | | | | | | | +| W5 | | High Performance | IO_L19P_T3_34 | User IO | | 34 | | | | | | | | | | | | | | +| W6 | | High Performance | IO_L7P_T1_33 | User IO | | 33 | | | | | | | | | | | | | | +| W7 | | High Performance | IO_L11N_T1_SRCC_33 | User IO | | 33 | | | | | | | | | | | | | | +| W8 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| W9 | | High Performance | IO_L13P_T2_MRCC_33 | User IO | | 33 | | | | | | | | | | | | | | +| W10 | | High Performance | IO_L15N_T2_DQS_33 | User IO | | 33 | | | | | | | | | | | | | | +| W11 | | High Performance | IO_L6P_T0_33 | User IO | | 33 | | | | | | | | | | | | | | +| W12 | | High Performance | IO_L19P_T3_33 | User IO | | 33 | | | | | | | | | | | | | | +| W13 | | High Performance | VCCO_33 | VCCO | | 33 | | | | | 0.00-1.80 | | | | | | | | | +| W14 | op0[6] | High Range | IO_L22P_T3_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| W15 | op0[3] | High Range | IO_L23N_T3_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| W16 | op0[8] | High Range | IO_L21P_T3_DQS_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| W17 | | High Range | IO_L14P_T2_SRCC_13 | User IO | | 13 | | | | | | | | | | | | | | +| W18 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| W19 | | High Range | IO_L12N_T1_MRCC_13 | User IO | | 13 | | | | | | | | | | | | | | +| W20 | | High Range | IO_L11N_T1_SRCC_13 | User IO | | 13 | | | | | | | | | | | | | | +| W21 | | High Range | IO_L4P_T0_13 | User IO | | 13 | | | | | | | | | | | | | | +| W22 | | High Range | IO_L4N_T0_13 | User IO | | 13 | | | | | | | | | | | | | | +| Y1 | | High Performance | IO_L20N_T3_34 | User IO | | 34 | | | | | | | | | | | | | | +| Y2 | | High Performance | IO_L21N_T3_DQS_34 | User IO | | 34 | | | | | | | | | | | | | | +| Y3 | | High Performance | IO_L21P_T3_DQS_34 | User IO | | 34 | | | | | | | | | | | | | | +| Y4 | | High Performance | IO_L19N_T3_VREF_34 | User IO | | 34 | | | | | | | | | | | | | | +| Y5 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| Y6 | | High Performance | IO_L7N_T1_33 | User IO | | 33 | | | | | | | | | | | | | | +| Y7 | | High Performance | IO_L12N_T1_MRCC_33 | User IO | | 33 | | | | | | | | | | | | | | +| Y8 | | High Performance | IO_L12P_T1_MRCC_33 | User IO | | 33 | | | | | | | | | | | | | | +| Y9 | | High Performance | IO_L13N_T2_MRCC_33 | User IO | | 33 | | | | | | | | | | | | | | +| Y10 | | High Performance | VCCO_33 | VCCO | | 33 | | | | | 0.00-1.80 | | | | | | | | | +| Y11 | | High Performance | IO_L6N_T0_VREF_33 | User IO | | 33 | | | | | | | | | | | | | | +| Y12 | | High Performance | IO_L19N_T3_VREF_33 | User IO | | 33 | | | | | | | | | | | | | | +| Y13 | | High Performance | IO_L21P_T3_DQS_33 | User IO | | 33 | | | | | | | | | | | | | | +| Y14 | op0[5] | High Range | IO_L22N_T3_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| Y15 | | | GND | GND | | | | | | | 0.0 | | | | | | | | | +| Y16 | op0[7] | High Range | IO_L21N_T3_DQS_13 | TRISTATE | LVCMOS18* | 13 | 12 | SLOW | | FP_VTT_50 | | UNFIXED | | | | NONE | | | | +| Y17 | | High Range | IO_L14N_T2_SRCC_13 | User IO | | 13 | | | | | | | | | | | | | | +| Y18 | | High Range | IO_L13P_T2_MRCC_13 | User IO | | 13 | | | | | | | | | | | | | | +| Y19 | | High Range | IO_L13N_T2_MRCC_13 | User IO | | 13 | | | | | | | | | | | | | | +| Y20 | | High Range | VCCO_13 | VCCO | | 13 | | | | | 1.80 | | | | | | | | | +| Y21 | | High Range | IO_L7P_T1_13 | User IO | | 13 | | | | | | | | | | | | | | +| Y22 | | High Range | IO_L7N_T1_13 | User IO | | 13 | | | | | | | | | | | | | | ++------------+-------------+------------------+------------------------------+---------------+-------------+---------+------------+------+---------------------+----------------------+-----------+------------+-----------+----------+------+------------------+--------------+-------------------+--------------+ +* Default value +** Special VCCO requirements may apply. Please consult the device family datasheet for specific guideline on VCCO requirements. + + diff --git a/lab2CA.runs/impl_1/RegFile_methodology_drc_routed.pb b/lab2CA.runs/impl_1/RegFile_methodology_drc_routed.pb new file mode 100644 index 0000000000000000000000000000000000000000..210b56b23e16be77884838fd52d0284a8cacbb41 GIT binary patch literal 52 zcmd;LGcqtV(=(jJEajV8l98X1pOc?nso + Max violations: + Violations found: 0 ++------+----------+-------------+------------+ +| Rule | Severity | Description | Violations | ++------+----------+-------------+------------+ ++------+----------+-------------+------------+ + +2. REPORT DETAILS +----------------- + diff --git a/lab2CA.runs/impl_1/RegFile_opt.dcp b/lab2CA.runs/impl_1/RegFile_opt.dcp new file mode 100644 index 0000000000000000000000000000000000000000..a44cd49f4070ffad19e4eb1f76ea6aea98245b7f GIT binary patch literal 8479 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 Ia}G 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 + + +1.1 On-Chip Components +---------------------- + ++--------------+-----------+----------+-----------+-----------------+ +| On-Chip | Power (W) | Used | Available | Utilization (%) | ++--------------+-----------+----------+-----------+-----------------+ +| Slice Logic | 0.000 | 2 | --- | --- | +| Others | 0.000 | 2 | --- | --- | +| I/O | 0.000 | 18 | 285 | 6.32 | +| Static Power | 0.084 | | | | +| Total | 0.084 | | | | ++--------------+-----------+----------+-----------+-----------------+ + + +1.2 Power Supply Summary +------------------------ + ++-----------+-------------+-----------+-------------+------------+ +| Source | Voltage (V) | Total (A) | Dynamic (A) | Static (A) | ++-----------+-------------+-----------+-------------+------------+ +| Vccint | 0.950 | 0.023 | 0.000 | 0.023 | +| Vccaux | 1.800 | 0.016 | 0.000 | 0.016 | +| Vcco33 | 3.300 | 0.000 | 0.000 | 0.000 | +| Vcco25 | 2.500 | 0.000 | 0.000 | 0.000 | +| Vcco18 | 1.800 | 0.000 | 0.000 | 0.000 | +| Vcco15 | 1.500 | 0.000 | 0.000 | 0.000 | +| Vcco135 | 1.350 | 0.000 | 0.000 | 0.000 | +| Vcco12 | 1.200 | 0.000 | 0.000 | 0.000 | +| Vccaux_io | 1.800 | 0.000 | 0.000 | 0.000 | +| Vccbram | 0.950 | 0.001 | 0.000 | 0.001 | +| MGTAVcc | 1.000 | 0.000 | 0.000 | 0.000 | +| MGTAVtt | 1.200 | 0.000 | 0.000 | 0.000 | +| MGTVccaux | 1.800 | 0.000 | 0.000 | 0.000 | +| Vccadc | 1.800 | 0.018 | 0.000 | 0.018 | ++-----------+-------------+-----------+-------------+------------+ + + +1.3 Confidence Level +-------------------- + ++-----------------------------+------------+------------------------------------------------+--------+ +| User Input Data | Confidence | Details | Action | ++-----------------------------+------------+------------------------------------------------+--------+ +| Design implementation state | High | Design is routed | | +| Clock nodes activity | High | User specified more than 95% of clocks | | +| I/O nodes activity | High | User specified more than 95% of inputs | | +| Internal nodes activity | High | User specified more than 25% of internal nodes | | +| Device models | High | Device models are Production | | +| | | | | +| Overall confidence level | High | | | ++-----------------------------+------------+------------------------------------------------+--------+ + + +2. Settings +----------- + +2.1 Environment +--------------- + ++-----------------------+--------------------------+ +| Ambient Temp (C) | 25.0 | +| ThetaJA (C/W) | 2.5 | +| Airflow (LFM) | 250 | +| Heat Sink | medium (Medium Profile) | +| ThetaSA (C/W) | 4.2 | +| Board Selection | medium (10"x10") | +| # of Board Layers | 12to15 (12 to 15 Layers) | +| Board Temperature (C) | 25.0 | ++-----------------------+--------------------------+ + + +2.2 Clock Constraints +--------------------- + ++-------+--------+-----------------+ +| Clock | Domain | Constraint (ns) | ++-------+--------+-----------------+ + + +3. Detailed Reports +------------------- + +3.1 By Hierarchy +---------------- + ++------+-----------+ +| Name | Power (W) | ++------+-----------+ + + diff --git a/lab2CA.runs/impl_1/RegFile_power_summary_routed.pb b/lab2CA.runs/impl_1/RegFile_power_summary_routed.pb new file mode 100644 index 0000000000000000000000000000000000000000..f995a25ffd0a9163ddce2f46bd0d5bc927b16d63 GIT binary patch literal 707 zcmajdF=*957zgkiN(WKUItik;w2S3Y9~Rn5tFJtz;?fRU7ln{~uRTrfUhnRuzJjzU z89E7tI5`ypQVN2Qsgn-^&!vNyMHek(br3Sw`!3=pX87e#?!Mf?_njGOPF`;|ZtR}g zToM}~smtA;@15*WgnQI$%mSXv@y};E>@cIiCl1AWZAzJwOm^eX1cnvY>l z#?kT`noXc_6D_RiH2%4ocAVitK7%=##atTA{+nn%k0!U!vW;eU(D*J|SmXOPThnFC zl{H_%oIFCy$7uEhjeWGRrcW_f*1U^3Sx3tV%{I{ZIa*k&KIVKAjbH5Ve`=+#$ipOA z$al!>g`chRH90xi+KS(hDY$YweM@lTV2_ZM@9&7S{hm03LvnhNt*#w^tlu97$@=NZlV3^O+%&FoPwd{D<<|J?i=x!i_`d0=kkLtuu++-*q;zh{O} J@a-SO`3*oK(@g*X literal 0 HcmV?d00001 diff --git a/lab2CA.runs/impl_1/RegFile_route_status.pb b/lab2CA.runs/impl_1/RegFile_route_status.pb new file mode 100644 index 0000000000000000000000000000000000000000..c0a6644a35cf80c5575de9a5367cc095ba6645ab GIT binary patch literal 43 ycmd;LGcqtV(leRFEE1GoT9T>|T#{H)TC5OUnwy(gRC$1h;eilCgCx@ec?JLqfDF0- literal 0 HcmV?d00001 diff --git a/lab2CA.runs/impl_1/RegFile_route_status.rpt b/lab2CA.runs/impl_1/RegFile_route_status.rpt new file mode 100644 index 0000000..3762180 --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile_route_status.rpt @@ -0,0 +1,11 @@ +Design Route Status + : # nets : + ------------------------------------------- : ----------- : + # of logical nets.......................... : 20 : + # of nets not needing routing.......... : 18 : + # of internally routed nets........ : 18 : + # of routable nets..................... : 2 : + # of fully routed nets............. : 2 : + # of nets with routing errors.......... : 0 : + ------------------------------------------- : ----------- : + diff --git a/lab2CA.runs/impl_1/RegFile_routed.dcp b/lab2CA.runs/impl_1/RegFile_routed.dcp new file mode 100644 index 0000000000000000000000000000000000000000..82f81fc8361b508b12f118a44f4181856caa76fd GIT binary patch literal 123752 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 K%$&^P{Qn<~y_TT> literal 0 HcmV?d00001 diff --git a/lab2CA.runs/impl_1/RegFile_timing_summary_routed.pb b/lab2CA.runs/impl_1/RegFile_timing_summary_routed.pb new file mode 100644 index 0000000..4526e93 --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile_timing_summary_routed.pb @@ -0,0 +1,2 @@ + +2012.4’)Timing analysis from Implemented netlist. \ No newline at end of file diff --git a/lab2CA.runs/impl_1/RegFile_timing_summary_routed.rpt b/lab2CA.runs/impl_1/RegFile_timing_summary_routed.rpt new file mode 100644 index 0000000..c2e6b27 --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile_timing_summary_routed.rpt @@ -0,0 +1,173 @@ +Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| Tool Version : Vivado v.2018.3 (win64) Build 2405991 Thu Dec 6 23:38:27 MST 2018 +| Date : Fri Feb 15 12:32:12 2019 +| Host : DESKTOP-CSFKQTV running 64-bit major release (build 9200) +| Command : report_timing_summary -max_paths 10 -file RegFile_timing_summary_routed.rpt -pb RegFile_timing_summary_routed.pb -rpx RegFile_timing_summary_routed.rpx -warn_on_violation +| Design : RegFile +| Device : 7k160ti-fbg484 +| Speed File : -2L PRODUCTION 1.12 2017-02-17 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Timing Summary Report + +------------------------------------------------------------------------------------------------ +| Timer Settings +| -------------- +------------------------------------------------------------------------------------------------ + + Enable Multi Corner Analysis : Yes + Enable Pessimism Removal : Yes + Pessimism Removal Resolution : Nearest Common Node + Enable Input Delay Default Clock : No + Enable Preset / Clear Arcs : No + Disable Flight Delays : No + Ignore I/O Paths : No + Timing Early Launch at Borrowing Latches : false + + Corner Analyze Analyze + Name Max Paths Min Paths + ------ --------- --------- + Slow Yes Yes + Fast Yes Yes + + + +check_timing report + +Table of Contents +----------------- +1. checking no_clock +2. checking constant_clock +3. checking pulse_width_clock +4. checking unconstrained_internal_endpoints +5. checking no_input_delay +6. checking no_output_delay +7. checking multiple_clock +8. checking generated_clocks +9. checking loops +10. checking partial_input_delay +11. checking partial_output_delay +12. checking latch_loops + +1. checking no_clock +-------------------- + There are 0 register/latch pins with no clock. + + +2. checking constant_clock +-------------------------- + There are 0 register/latch pins with constant_clock. + + +3. checking pulse_width_clock +----------------------------- + There are 0 register/latch pins which need pulse_width check + + +4. checking unconstrained_internal_endpoints +-------------------------------------------- + There are 0 pins that are not constrained for maximum delay. + + There are 0 pins that are not constrained for maximum delay due to constant clock. + + +5. checking no_input_delay +-------------------------- + There are 0 input ports with no input delay specified. + + There are 0 input ports with no input delay but user has a false path constraint. + + +6. checking no_output_delay +--------------------------- + There are 0 ports with no output delay specified. + + There are 0 ports with no output delay but user has a false path constraint + + There are 0 ports with no output delay but with a timing clock defined on it or propagating through it + + +7. checking multiple_clock +-------------------------- + There are 0 register/latch pins with multiple clocks. + + +8. checking generated_clocks +---------------------------- + There are 0 generated clocks that are not connected to a clock source. + + +9. checking loops +----------------- + There are 0 combinational loops in the design. + + +10. checking partial_input_delay +-------------------------------- + There are 0 input ports with partial input delay specified. + + +11. checking partial_output_delay +--------------------------------- + There are 0 ports with partial output delay specified. + + +12. checking latch_loops +------------------------ + There are 0 combinational latch loops in the design through latch input + + + +------------------------------------------------------------------------------------------------ +| Design Timing Summary +| --------------------- +------------------------------------------------------------------------------------------------ + + WNS(ns) TNS(ns) TNS Failing Endpoints TNS Total Endpoints WHS(ns) THS(ns) THS Failing Endpoints THS Total Endpoints WPWS(ns) TPWS(ns) TPWS Failing Endpoints TPWS Total Endpoints + ------- ------- --------------------- ------------------- ------- ------- --------------------- ------------------- -------- -------- ---------------------- -------------------- + NA NA NA NA NA NA NA NA NA NA NA NA + + +There are no user specified timing constraints. + + +------------------------------------------------------------------------------------------------ +| Clock Summary +| ------------- +------------------------------------------------------------------------------------------------ + + +------------------------------------------------------------------------------------------------ +| Intra Clock Table +| ----------------- +------------------------------------------------------------------------------------------------ + +Clock WNS(ns) TNS(ns) TNS Failing Endpoints TNS Total Endpoints WHS(ns) THS(ns) THS Failing Endpoints THS Total Endpoints WPWS(ns) TPWS(ns) TPWS Failing Endpoints TPWS Total Endpoints +----- ------- ------- --------------------- ------------------- ------- ------- --------------------- ------------------- -------- -------- ---------------------- -------------------- + + +------------------------------------------------------------------------------------------------ +| Inter Clock Table +| ----------------- +------------------------------------------------------------------------------------------------ + +From Clock To Clock WNS(ns) TNS(ns) TNS Failing Endpoints TNS Total Endpoints WHS(ns) THS(ns) THS Failing Endpoints THS Total Endpoints +---------- -------- ------- ------- --------------------- ------------------- ------- ------- --------------------- ------------------- + + +------------------------------------------------------------------------------------------------ +| Other Path Groups Table +| ----------------------- +------------------------------------------------------------------------------------------------ + +Path Group From Clock To Clock WNS(ns) TNS(ns) TNS Failing Endpoints TNS Total Endpoints WHS(ns) THS(ns) THS Failing Endpoints THS Total Endpoints +---------- ---------- -------- ------- ------- --------------------- ------------------- ------- ------- --------------------- ------------------- + + +------------------------------------------------------------------------------------------------ +| Timing Details +| -------------- +------------------------------------------------------------------------------------------------ + + diff --git a/lab2CA.runs/impl_1/RegFile_utilization_placed.pb b/lab2CA.runs/impl_1/RegFile_utilization_placed.pb new file mode 100644 index 0000000000000000000000000000000000000000..34d5bd5dcdd415224df71bc096d3e969f698c743 GIT binary patch literal 289 zcmd;LGcqu=&@-OItPxzAo10ivsgR$hP+F3ilUbEml9`_e;%28-Dioy_=a&{Grxxp- zgM=c+L@EOLIT24eRbfylc+Qp{zkF^Ij^0!01=kxoY~LF`FZ98RHb z?#>}WK4F{wux literal 0 HcmV?d00001 diff --git a/lab2CA.runs/impl_1/RegFile_utilization_placed.rpt b/lab2CA.runs/impl_1/RegFile_utilization_placed.rpt new file mode 100644 index 0000000..c23f998 --- /dev/null +++ b/lab2CA.runs/impl_1/RegFile_utilization_placed.rpt @@ -0,0 +1,196 @@ +Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +----------------------------------------------------------------------------------------------------------- +| Tool Version : Vivado v.2018.3 (win64) Build 2405991 Thu Dec 6 23:38:27 MST 2018 +| Date : Fri Feb 15 12:31:34 2019 +| Host : DESKTOP-CSFKQTV running 64-bit major release (build 9200) +| Command : report_utilization -file RegFile_utilization_placed.rpt -pb RegFile_utilization_placed.pb +| Design : RegFile +| Device : 7k160tifbg484-2L +| Design State : Fully Placed +----------------------------------------------------------------------------------------------------------- + +Utilization Design Information + +Table of Contents +----------------- +1. Slice Logic +1.1 Summary of Registers by Type +2. Slice Logic Distribution +3. Memory +4. DSP +5. IO and GT Specific +6. Clocking +7. Specific Feature +8. Primitives +9. Black Boxes +10. Instantiated Netlists + +1. Slice Logic +-------------- + ++-------------------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++-------------------------+------+-------+-----------+-------+ +| Slice LUTs | 0 | 0 | 101400 | 0.00 | +| LUT as Logic | 0 | 0 | 101400 | 0.00 | +| LUT as Memory | 0 | 0 | 35000 | 0.00 | +| Slice Registers | 0 | 0 | 202800 | 0.00 | +| Register as Flip Flop | 0 | 0 | 202800 | 0.00 | +| Register as Latch | 0 | 0 | 202800 | 0.00 | +| F7 Muxes | 0 | 0 | 50700 | 0.00 | +| F8 Muxes | 0 | 0 | 25350 | 0.00 | ++-------------------------+------+-------+-----------+-------+ + + +1.1 Summary of Registers by Type +-------------------------------- + ++-------+--------------+-------------+--------------+ +| Total | Clock Enable | Synchronous | Asynchronous | ++-------+--------------+-------------+--------------+ +| 0 | _ | - | - | +| 0 | _ | - | Set | +| 0 | _ | - | Reset | +| 0 | _ | Set | - | +| 0 | _ | Reset | - | +| 0 | Yes | - | - | +| 0 | Yes | - | Set | +| 0 | Yes | - | Reset | +| 0 | Yes | Set | - | +| 0 | Yes | Reset | - | ++-------+--------------+-------------+--------------+ + + +2. Slice Logic Distribution +--------------------------- + ++------------------------------------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++------------------------------------------+------+-------+-----------+-------+ +| Slice | 0 | 0 | 25350 | 0.00 | +| SLICEL | 0 | 0 | | | +| SLICEM | 0 | 0 | | | +| LUT as Logic | 0 | 0 | 101400 | 0.00 | +| LUT as Memory | 0 | 0 | 35000 | 0.00 | +| LUT as Distributed RAM | 0 | 0 | | | +| LUT as Shift Register | 0 | 0 | | | +| Slice Registers | 0 | 0 | 202800 | 0.00 | +| Register driven from within the Slice | 0 | | | | +| Register driven from outside the Slice | 0 | | | | +| Unique Control Sets | 0 | | 25350 | 0.00 | ++------------------------------------------+------+-------+-----------+-------+ +* Note: Available Control Sets calculated as Slice Registers / 8, Review the Control Sets Report for more information regarding control sets. + + +3. Memory +--------- + ++----------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++----------------+------+-------+-----------+-------+ +| Block RAM Tile | 0 | 0 | 325 | 0.00 | +| RAMB36/FIFO* | 0 | 0 | 325 | 0.00 | +| RAMB18 | 0 | 0 | 650 | 0.00 | ++----------------+------+-------+-----------+-------+ +* Note: Each Block RAM Tile only has one FIFO logic available and therefore can accommodate only one FIFO36E1 or one FIFO18E1. However, if a FIFO18E1 occupies a Block RAM Tile, that tile can still accommodate a RAMB18E1 + + +4. DSP +------ + ++-----------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++-----------+------+-------+-----------+-------+ +| DSPs | 0 | 0 | 600 | 0.00 | ++-----------+------+-------+-----------+-------+ + + +5. IO and GT Specific +--------------------- + ++-----------------------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++-----------------------------+------+-------+-----------+-------+ +| Bonded IOB | 18 | 0 | 285 | 6.32 | +| IOB Master Pads | 8 | | | | +| IOB Slave Pads | 9 | | | | +| Bonded IPADs | 0 | 0 | 14 | 0.00 | +| Bonded OPADs | 0 | 0 | 8 | 0.00 | +| PHY_CONTROL | 0 | 0 | 8 | 0.00 | +| PHASER_REF | 0 | 0 | 8 | 0.00 | +| OUT_FIFO | 0 | 0 | 32 | 0.00 | +| IN_FIFO | 0 | 0 | 32 | 0.00 | +| IDELAYCTRL | 0 | 0 | 8 | 0.00 | +| IBUFDS | 0 | 0 | 275 | 0.00 | +| GTXE2_COMMON | 0 | 0 | 1 | 0.00 | +| GTXE2_CHANNEL | 0 | 0 | 4 | 0.00 | +| PHASER_OUT/PHASER_OUT_PHY | 0 | 0 | 32 | 0.00 | +| PHASER_IN/PHASER_IN_PHY | 0 | 0 | 32 | 0.00 | +| IDELAYE2/IDELAYE2_FINEDELAY | 0 | 0 | 400 | 0.00 | +| ODELAYE2/ODELAYE2_FINEDELAY | 0 | 0 | 150 | 0.00 | +| IBUFDS_GTE2 | 0 | 0 | 2 | 0.00 | +| ILOGIC | 0 | 0 | 285 | 0.00 | +| OLOGIC | 0 | 0 | 285 | 0.00 | ++-----------------------------+------+-------+-----------+-------+ + + +6. Clocking +----------- + ++------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++------------+------+-------+-----------+-------+ +| BUFGCTRL | 0 | 0 | 32 | 0.00 | +| BUFIO | 0 | 0 | 32 | 0.00 | +| MMCME2_ADV | 0 | 0 | 8 | 0.00 | +| PLLE2_ADV | 0 | 0 | 8 | 0.00 | +| BUFMRCE | 0 | 0 | 16 | 0.00 | +| BUFHCE | 0 | 0 | 120 | 0.00 | +| BUFR | 0 | 0 | 32 | 0.00 | ++------------+------+-------+-----------+-------+ + + +7. Specific Feature +------------------- + ++-------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++-------------+------+-------+-----------+-------+ +| BSCANE2 | 0 | 0 | 4 | 0.00 | +| CAPTUREE2 | 0 | 0 | 1 | 0.00 | +| DNA_PORT | 0 | 0 | 1 | 0.00 | +| EFUSE_USR | 0 | 0 | 1 | 0.00 | +| FRAME_ECCE2 | 0 | 0 | 1 | 0.00 | +| ICAPE2 | 0 | 0 | 2 | 0.00 | +| PCIE_2_1 | 0 | 0 | 1 | 0.00 | +| STARTUPE2 | 0 | 0 | 1 | 0.00 | +| XADC | 0 | 0 | 1 | 0.00 | ++-------------+------+-------+-----------+-------+ + + +8. Primitives +------------- + ++----------+------+---------------------+ +| Ref Name | Used | Functional Category | ++----------+------+---------------------+ +| OBUFT | 18 | IO | ++----------+------+---------------------+ + + +9. Black Boxes +-------------- + ++----------+------+ +| Ref Name | Used | ++----------+------+ + + +10. Instantiated Netlists +------------------------- + ++----------+------+ +| Ref Name | Used | ++----------+------+ + + diff --git a/lab2CA.runs/impl_1/gen_run.xml b/lab2CA.runs/impl_1/gen_run.xml new file mode 100644 index 0000000..af52756 --- /dev/null +++ b/lab2CA.runs/impl_1/gen_run.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lab2CA.runs/impl_1/htr.txt b/lab2CA.runs/impl_1/htr.txt new file mode 100644 index 0000000..57ea2bc --- /dev/null +++ b/lab2CA.runs/impl_1/htr.txt @@ -0,0 +1,9 @@ +REM +REM Vivado(TM) +REM htr.txt: a Vivado-generated description of how-to-repeat the +REM the basic steps of a run. Note that runme.bat/sh needs +REM to be invoked for Vivado to track run status. +REM Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +REM + +vivado -log RegFile.vdi -applog -m64 -product Vivado -messageDb vivado.pb -mode batch -source RegFile.tcl -notrace diff --git a/lab2CA.runs/impl_1/init_design.pb b/lab2CA.runs/impl_1/init_design.pb new file mode 100644 index 0000000000000000000000000000000000000000..dc7dba667ed19e5219934f62aac346366b621226 GIT binary patch literal 1621 zcmcIkU2oGc6s23+F;k#I;(_wz32oXc5+zQ$ejpxT3^cJ#XbcdQ&}1C9^Oo3=?RFgx zJn;^HivNX^ekjl|u?M6)B)-@8oO{mA1w&BT5>bSC(1EK8RExERhF4!6vLOzHCL!7e zZpirQQ9u>zb7*N1!vorX$wCUP7)uRDqkLyx-)(0mVC=~ zz2hr!aa8o z%^1vWH0$Mn4jG|n4cz)C!^+4McM`{D#b1MsHQ*YoqC8%Y9z}JFDuDMHH^9jSeL706t9=dID*PV`Vf;KW(^2BO%Y>`rdPs z7E^pW&Ff>v(|1s<7)>`@^)fNjEI6`3ZEAuNQYVZ}Bo3*jHk_9d-2+!0r;|RHj@|`J zjh1IOymrpjJD}v)j^oUSx@EU%8O}zN%BV8-?<-h&$C+XgJd~I#BW{%H3EvLPPb$wl zVB)Bo8J{*--4}3jkA^g&Tq}4+C53ugg$6drp&jNU5JlNqqp&lo0e87?$ z`Nkhxl4(Y8I6H-Ab0k^YQVOXcZxDv(V{Yv%w};?bX3@>FOaV|9;M@Nk;1zH^L#K1`%r@ug nW+u9o6HRBfZJV8(AM`xmMvWX-@}~9%0NZ8^4k!^as1|+!@ORSS literal 0 HcmV?d00001 diff --git a/lab2CA.runs/impl_1/opt_design.pb b/lab2CA.runs/impl_1/opt_design.pb new file mode 100644 index 0000000000000000000000000000000000000000..7d49c2064135cca8049b1d4b39bbe1c63e38f8a6 GIT binary patch literal 10545 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 literal 0 HcmV?d00001 diff --git a/lab2CA.runs/impl_1/place_design.pb b/lab2CA.runs/impl_1/place_design.pb new file mode 100644 index 0000000000000000000000000000000000000000..fe04e98c0202c763ba76ae7c0f0f0203ee2f03f1 GIT binary patch literal 6962 zcmeHM;ZNH}6mK92>kU6L3;h8U$L=j+W7~R?#$cu`j{Gu`S<) zrq!zL!#+&=vP#qTAMBslAF#h`?`#|#avmUcADAj3LF~)Bcklh)@80`?zDBdHpx>vy z)5HrL%@yaT>gLkrL-&w6fv`P-(QN2Zo9#J_yFH)GIIK$to@l0jv`e*$VVL`u!s4*_ zrf_L)3jJ9?U#<$l`k`?B9u@)aF@Y)eT$}lv;cgJ&E~8=)F?@4@-^8$e6`ncl5LU#G zq$ks+ZY`B?Q>0=SeSn?_8pSmZ z(0oeyL0q#_ovPdgp} zRuV^+jqrfW*A(~Z(CrWUIOxhEX>IRvSs(^vK3?ASf){yZQa1I-zsO`OrgyM{?zR=yvT1gu^kTZT^Zjyn0YkhkdXMJhPN10 z^Gm$AwFb*VMi0_;Jpe%bH=3KBpC-%4e6FGS)G3}gCF>RlUNB7+SIJ0vGya+Mo}BvD zAf&FX)N6|GevC@GrtA9TtN6wMry)bL!`XzF+h`+!hD^bkf{nk&t$k)6@Ik+cSGv?< z9i~H}q!&mw|GyPb5yg-jM;k|bC-aa-V=No#Lro_JR_7&+1bpu(J2|J%`t=S9vUxZG z1!x{l=ZUyji3-v85ZQd3Ku9(jsjKtsK!vMAc;|b5T316|6g}x!j_XKC+BOI z9-`$0as=lD_u_-@rvjpnf@CnM$Uz0hS}v#$QijW6W*PX-9ndzUe1e^TasQ@}*RYVi zG4)>_uZHP{dfwR%`&OF)c+6fnuX*JmiF`m_l+M zw?U_P?+!fgW#ZhJ#&f!|CwCZALf%oFVhnhQZb0>C`f6yq zJ!Xp|z2XHxh-q`>`J!=B7-`Rd0#GN04uC8V%gKPbjy`!NQ3qg;OCMxWDrg7P2u+JI zRs?+$1eSzQ2Ez4tdxq#0!)lDFD0k7d)Xwwuje9r>V6ESaO-vI5D*lRgsvhl-)~Xf_ zd|q`yyxB9VJFIul_1Io=ZE23J>YiqRh7EK4^6H?e1*zHDF62W6Y|E8*)eW$ z6QpISB=5Nau5@7woNna?>26Ud(BvrqI3v3Mv49RncA7Y6veZ?RrLGx9{&ZP0wT5LK zPnUIAoi~8}QJ6gIE7Vn-RhIXWfOz82nKzl!<4V{W#YM3s?3@yxA0|Ds(PM>YvVn;L zZx18}jw^>O>Hs`W_?TUjaq<)wekmaM$55Q=tby|;OV^ikrGS&kiWRV&Y5595&{RQC K?I3dI3jY8Cpu(O2 literal 0 HcmV?d00001 diff --git a/lab2CA.runs/impl_1/route_design.pb b/lab2CA.runs/impl_1/route_design.pb new file mode 100644 index 0000000000000000000000000000000000000000..d7402e4944b7d364ceed05587aed2f7a9d42f202 GIT binary patch literal 11979 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 Gp!^pKt;C4{ literal 0 HcmV?d00001 diff --git a/lab2CA.runs/impl_1/vivado.jou b/lab2CA.runs/impl_1/vivado.jou new file mode 100644 index 0000000..eca2419 --- /dev/null +++ b/lab2CA.runs/impl_1/vivado.jou @@ -0,0 +1,12 @@ +#----------------------------------------------------------- +# Vivado v2018.3 (64-bit) +# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018 +# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 +# Start of session at: Fri Feb 15 12:30:55 2019 +# Process ID: 11860 +# Current directory: C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1 +# Command line: vivado.exe -log RegFile.vdi -applog -product Vivado -messageDb vivado.pb -mode batch -source RegFile.tcl -notrace +# Log file: C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1/RegFile.vdi +# Journal file: C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/impl_1\vivado.jou +#----------------------------------------------------------- +source RegFile.tcl -notrace diff --git a/lab2CA.runs/impl_1/vivado.pb b/lab2CA.runs/impl_1/vivado.pb new file mode 100644 index 0000000000000000000000000000000000000000..9d33990c0a17f4ddc533fbb3857d132d31937746 GIT binary patch literal 149 zcmd;TVB`{Ut;j6N%u82LEmlY@0g`%pdRzjmQp`pMW?F2?`MJ6Ic}7xPY+;#Yi7EL; z>?x^fiKRIuRxpN<4wr;mQKo`hYLbGXse+-Am9dePp^<`-fuSX)>L@ltb6udx84Lxi b6|55&83dTP__(-S^HLOoQj_zGQUn+QfwCs2 literal 0 HcmV?d00001 diff --git a/lab2CA.runs/synth_1/RegFile.dcp b/lab2CA.runs/synth_1/RegFile.dcp new file mode 100644 index 0000000000000000000000000000000000000000..eb7b26de3f1bb64ac278fa53e12c01ca5cb8bc28 GIT binary patch literal 8074 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 literal 0 HcmV?d00001 diff --git a/lab2CA.runs/synth_1/RegFile_utilization_synth.rpt b/lab2CA.runs/synth_1/RegFile_utilization_synth.rpt new file mode 100644 index 0000000..5d58555 --- /dev/null +++ b/lab2CA.runs/synth_1/RegFile_utilization_synth.rpt @@ -0,0 +1,173 @@ +Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +--------------------------------------------------------------------------------------------------------- +| Tool Version : Vivado v.2018.3 (win64) Build 2405991 Thu Dec 6 23:38:27 MST 2018 +| Date : Fri Feb 15 12:30:22 2019 +| Host : DESKTOP-CSFKQTV running 64-bit major release (build 9200) +| Command : report_utilization -file RegFile_utilization_synth.rpt -pb RegFile_utilization_synth.pb +| Design : RegFile +| Device : 7k160tifbg484-2L +| Design State : Synthesized +--------------------------------------------------------------------------------------------------------- + +Utilization Design Information + +Table of Contents +----------------- +1. Slice Logic +1.1 Summary of Registers by Type +2. Memory +3. DSP +4. IO and GT Specific +5. Clocking +6. Specific Feature +7. Primitives +8. Black Boxes +9. Instantiated Netlists + +1. Slice Logic +-------------- + ++-------------------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++-------------------------+------+-------+-----------+-------+ +| Slice LUTs* | 0 | 0 | 101400 | 0.00 | +| LUT as Logic | 0 | 0 | 101400 | 0.00 | +| LUT as Memory | 0 | 0 | 35000 | 0.00 | +| Slice Registers | 0 | 0 | 202800 | 0.00 | +| Register as Flip Flop | 0 | 0 | 202800 | 0.00 | +| Register as Latch | 0 | 0 | 202800 | 0.00 | +| F7 Muxes | 0 | 0 | 50700 | 0.00 | +| F8 Muxes | 0 | 0 | 25350 | 0.00 | ++-------------------------+------+-------+-----------+-------+ +* Warning! The Final LUT count, after physical optimizations and full implementation, is typically lower. Run opt_design after synthesis, if not already completed, for a more realistic count. + + +1.1 Summary of Registers by Type +-------------------------------- + ++-------+--------------+-------------+--------------+ +| Total | Clock Enable | Synchronous | Asynchronous | ++-------+--------------+-------------+--------------+ +| 0 | _ | - | - | +| 0 | _ | - | Set | +| 0 | _ | - | Reset | +| 0 | _ | Set | - | +| 0 | _ | Reset | - | +| 0 | Yes | - | - | +| 0 | Yes | - | Set | +| 0 | Yes | - | Reset | +| 0 | Yes | Set | - | +| 0 | Yes | Reset | - | ++-------+--------------+-------------+--------------+ + + +2. Memory +--------- + ++----------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++----------------+------+-------+-----------+-------+ +| Block RAM Tile | 0 | 0 | 325 | 0.00 | +| RAMB36/FIFO* | 0 | 0 | 325 | 0.00 | +| RAMB18 | 0 | 0 | 650 | 0.00 | ++----------------+------+-------+-----------+-------+ +* Note: Each Block RAM Tile only has one FIFO logic available and therefore can accommodate only one FIFO36E1 or one FIFO18E1. However, if a FIFO18E1 occupies a Block RAM Tile, that tile can still accommodate a RAMB18E1 + + +3. DSP +------ + ++-----------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++-----------+------+-------+-----------+-------+ +| DSPs | 0 | 0 | 600 | 0.00 | ++-----------+------+-------+-----------+-------+ + + +4. IO and GT Specific +--------------------- + ++-----------------------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++-----------------------------+------+-------+-----------+-------+ +| Bonded IOB | 18 | 0 | 285 | 6.32 | +| Bonded IPADs | 0 | 0 | 14 | 0.00 | +| Bonded OPADs | 0 | 0 | 8 | 0.00 | +| PHY_CONTROL | 0 | 0 | 8 | 0.00 | +| PHASER_REF | 0 | 0 | 8 | 0.00 | +| OUT_FIFO | 0 | 0 | 32 | 0.00 | +| IN_FIFO | 0 | 0 | 32 | 0.00 | +| IDELAYCTRL | 0 | 0 | 8 | 0.00 | +| IBUFDS | 0 | 0 | 275 | 0.00 | +| GTXE2_COMMON | 0 | 0 | 1 | 0.00 | +| GTXE2_CHANNEL | 0 | 0 | 4 | 0.00 | +| PHASER_OUT/PHASER_OUT_PHY | 0 | 0 | 32 | 0.00 | +| PHASER_IN/PHASER_IN_PHY | 0 | 0 | 32 | 0.00 | +| IDELAYE2/IDELAYE2_FINEDELAY | 0 | 0 | 400 | 0.00 | +| ODELAYE2/ODELAYE2_FINEDELAY | 0 | 0 | 150 | 0.00 | +| IBUFDS_GTE2 | 0 | 0 | 2 | 0.00 | +| ILOGIC | 0 | 0 | 285 | 0.00 | +| OLOGIC | 0 | 0 | 285 | 0.00 | ++-----------------------------+------+-------+-----------+-------+ + + +5. Clocking +----------- + ++------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++------------+------+-------+-----------+-------+ +| BUFGCTRL | 0 | 0 | 32 | 0.00 | +| BUFIO | 0 | 0 | 32 | 0.00 | +| MMCME2_ADV | 0 | 0 | 8 | 0.00 | +| PLLE2_ADV | 0 | 0 | 8 | 0.00 | +| BUFMRCE | 0 | 0 | 16 | 0.00 | +| BUFHCE | 0 | 0 | 120 | 0.00 | +| BUFR | 0 | 0 | 32 | 0.00 | ++------------+------+-------+-----------+-------+ + + +6. Specific Feature +------------------- + ++-------------+------+-------+-----------+-------+ +| Site Type | Used | Fixed | Available | Util% | ++-------------+------+-------+-----------+-------+ +| BSCANE2 | 0 | 0 | 4 | 0.00 | +| CAPTUREE2 | 0 | 0 | 1 | 0.00 | +| DNA_PORT | 0 | 0 | 1 | 0.00 | +| EFUSE_USR | 0 | 0 | 1 | 0.00 | +| FRAME_ECCE2 | 0 | 0 | 1 | 0.00 | +| ICAPE2 | 0 | 0 | 2 | 0.00 | +| PCIE_2_1 | 0 | 0 | 1 | 0.00 | +| STARTUPE2 | 0 | 0 | 1 | 0.00 | +| XADC | 0 | 0 | 1 | 0.00 | ++-------------+------+-------+-----------+-------+ + + +7. Primitives +------------- + ++----------+------+---------------------+ +| Ref Name | Used | Functional Category | ++----------+------+---------------------+ +| OBUFT | 18 | IO | ++----------+------+---------------------+ + + +8. Black Boxes +-------------- + ++----------+------+ +| Ref Name | Used | ++----------+------+ + + +9. Instantiated Netlists +------------------------ + ++----------+------+ +| Ref Name | Used | ++----------+------+ + + diff --git a/lab2CA.runs/synth_1/gen_run.xml b/lab2CA.runs/synth_1/gen_run.xml new file mode 100644 index 0000000..c08a128 --- /dev/null +++ b/lab2CA.runs/synth_1/gen_run.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lab2CA.runs/synth_1/htr.txt b/lab2CA.runs/synth_1/htr.txt new file mode 100644 index 0000000..a575bf2 --- /dev/null +++ b/lab2CA.runs/synth_1/htr.txt @@ -0,0 +1,9 @@ +REM +REM Vivado(TM) +REM htr.txt: a Vivado-generated description of how-to-repeat the +REM the basic steps of a run. Note that runme.bat/sh needs +REM to be invoked for Vivado to track run status. +REM Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +REM + +vivado -log RegFile.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source RegFile.tcl diff --git a/lab2CA.runs/synth_1/vivado.jou b/lab2CA.runs/synth_1/vivado.jou new file mode 100644 index 0000000..8250914 --- /dev/null +++ b/lab2CA.runs/synth_1/vivado.jou @@ -0,0 +1,12 @@ +#----------------------------------------------------------- +# Vivado v2018.3 (64-bit) +# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018 +# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 +# Start of session at: Fri Feb 15 12:29:57 2019 +# Process ID: 16780 +# Current directory: C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/synth_1 +# Command line: vivado.exe -log RegFile.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source RegFile.tcl +# Log file: C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/synth_1/RegFile.vds +# Journal file: C:/Users/JoseIgnacio/CA Lab/lab2CA.runs/synth_1\vivado.jou +#----------------------------------------------------------- +source RegFile.tcl -notrace diff --git a/lab2CA.runs/synth_1/vivado.pb b/lab2CA.runs/synth_1/vivado.pb new file mode 100644 index 0000000000000000000000000000000000000000..6eec53b3e386e33d8beec4ae2359fdc47c968d06 GIT binary patch literal 32432 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 literal 0 HcmV?d00001 diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/RegFile.tcl b/lab2CA.sim/sim_1/impl/timing/xsim/RegFile.tcl new file mode 100644 index 0000000..1094e45 --- /dev/null +++ b/lab2CA.sim/sim_1/impl/timing/xsim/RegFile.tcl @@ -0,0 +1,11 @@ +set curr_wave [current_wave_config] +if { [string length $curr_wave] == 0 } { + if { [llength [get_objects]] > 0} { + add_wave / + set_property needs_save false [current_wave_config] + } else { + send_msg_id Add_Wave-1 WARNING "No top level signals found. Simulator will start without a wave window. If you want to open a wave window go to 'File->New Waveform Configuration' or type 'create_wave_config' in the TCL console." + } +} + +run 1000ns diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/RegFile_time_impl.v b/lab2CA.sim/sim_1/impl/timing/xsim/RegFile_time_impl.v new file mode 100644 index 0000000..acdd260 --- /dev/null +++ b/lab2CA.sim/sim_1/impl/timing/xsim/RegFile_time_impl.v @@ -0,0 +1,184 @@ +// Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2018.3 (win64) Build 2405991 Thu Dec 6 23:38:27 MST 2018 +// Date : Fri Feb 15 12:36:16 2019 +// Host : DESKTOP-CSFKQTV running 64-bit major release (build 9200) +// Command : write_verilog -mode timesim -nolib -sdf_anno true -force -file {C:/Users/JoseIgnacio/CA +// Lab/lab2CA.sim/sim_1/impl/timing/xsim/RegFile_time_impl.v} +// Design : RegFile +// Purpose : This verilog netlist is a timing simulation representation of the design and should not be modified or +// synthesized. Please ensure that this netlist is used with the corresponding SDF file. +// Device : xc7k160tifbg484-2L +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps +`define XIL_TIMING + +(* ECO_CHECKSUM = "2b285f13" *) +(* NotValidForBitStream *) +module RegFile + (clk, + reset, + write_index, + op0_idx, + op1_idx, + write_data, + op0, + op1); + input clk; + input reset; + input [1:0]write_index; + input [1:0]op0_idx; + input [1:0]op1_idx; + input [8:0]write_data; + output [8:0]op0; + output [8:0]op1; + + wire [8:0]op0; + wire [8:0]op1; + +initial begin + $sdf_annotate("RegFile_time_impl.sdf",,,,"tool_control"); +end + OBUFT \op0_OBUF[0]_inst + (.I(1'b0), + .O(op0[0]), + .T(1'b1)); + OBUFT \op0_OBUF[1]_inst + (.I(1'b0), + .O(op0[1]), + .T(1'b1)); + OBUFT \op0_OBUF[2]_inst + (.I(1'b0), + .O(op0[2]), + .T(1'b1)); + OBUFT \op0_OBUF[3]_inst + (.I(1'b0), + .O(op0[3]), + .T(1'b1)); + OBUFT \op0_OBUF[4]_inst + (.I(1'b0), + .O(op0[4]), + .T(1'b1)); + OBUFT \op0_OBUF[5]_inst + (.I(1'b0), + .O(op0[5]), + .T(1'b1)); + OBUFT \op0_OBUF[6]_inst + (.I(1'b0), + .O(op0[6]), + .T(1'b1)); + OBUFT \op0_OBUF[7]_inst + (.I(1'b0), + .O(op0[7]), + .T(1'b1)); + OBUFT \op0_OBUF[8]_inst + (.I(1'b0), + .O(op0[8]), + .T(1'b1)); + OBUFT \op1_OBUF[0]_inst + (.I(1'b0), + .O(op1[0]), + .T(1'b1)); + OBUFT \op1_OBUF[1]_inst + (.I(1'b0), + .O(op1[1]), + .T(1'b1)); + OBUFT \op1_OBUF[2]_inst + (.I(1'b0), + .O(op1[2]), + .T(1'b1)); + OBUFT \op1_OBUF[3]_inst + (.I(1'b0), + .O(op1[3]), + .T(1'b1)); + OBUFT \op1_OBUF[4]_inst + (.I(1'b0), + .O(op1[4]), + .T(1'b1)); + OBUFT \op1_OBUF[5]_inst + (.I(1'b0), + .O(op1[5]), + .T(1'b1)); + OBUFT \op1_OBUF[6]_inst + (.I(1'b0), + .O(op1[6]), + .T(1'b1)); + OBUFT \op1_OBUF[7]_inst + (.I(1'b0), + .O(op1[7]), + .T(1'b1)); + OBUFT \op1_OBUF[8]_inst + (.I(1'b0), + .O(op1[8]), + .T(1'b1)); +endmodule +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + tri1 p_up_tmp; + tri (weak1, strong0) PLL_LOCKG = p_up_tmp; + + wire PROGB_GLBL; + wire CCLKO_GLBL; + wire FCSBO_GLBL; + wire [3:0] DO_GLBL; + wire [3:0] DI_GLBL; + + reg GSR_int; + reg GTS_int; + reg PRLD_int; + +//-------- JTAG Globals -------------- + wire JTAG_TDO_GLBL; + wire JTAG_TCK_GLBL; + wire JTAG_TDI_GLBL; + wire JTAG_TMS_GLBL; + wire JTAG_TRST_GLBL; + + reg JTAG_CAPTURE_GLBL; + reg JTAG_RESET_GLBL; + reg JTAG_SHIFT_GLBL; + reg JTAG_UPDATE_GLBL; + reg JTAG_RUNTEST_GLBL; + + reg JTAG_SEL1_GLBL = 0; + reg JTAG_SEL2_GLBL = 0 ; + reg JTAG_SEL3_GLBL = 0; + reg JTAG_SEL4_GLBL = 0; + + reg JTAG_USER_TDO1_GLBL = 1'bz; + reg JTAG_USER_TDO2_GLBL = 1'bz; + reg JTAG_USER_TDO3_GLBL = 1'bz; + reg JTAG_USER_TDO4_GLBL = 1'bz; + + assign (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + + initial begin + GSR_int = 1'b1; + PRLD_int = 1'b1; + #(ROC_WIDTH) + GSR_int = 1'b0; + PRLD_int = 1'b0; + end + + initial begin + GTS_int = 1'b1; + #(TOC_WIDTH) + GTS_int = 1'b0; + end + +endmodule +`endif diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/RegFile_vlog.prj b/lab2CA.sim/sim_1/impl/timing/xsim/RegFile_vlog.prj new file mode 100644 index 0000000..80300a3 --- /dev/null +++ b/lab2CA.sim/sim_1/impl/timing/xsim/RegFile_vlog.prj @@ -0,0 +1,6 @@ +# compile verilog/system verilog design source files +verilog xil_defaultlib \ +"RegFile_time_impl.v" \ + +# Do not sort compile order +nosort diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/webtalk.jou b/lab2CA.sim/sim_1/impl/timing/xsim/webtalk.jou new file mode 100644 index 0000000..e01861d --- /dev/null +++ b/lab2CA.sim/sim_1/impl/timing/xsim/webtalk.jou @@ -0,0 +1,12 @@ +#----------------------------------------------------------- +# Webtalk v2018.3 (64-bit) +# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018 +# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 +# Start of session at: Fri Feb 15 12:37:49 2019 +# Process ID: 17624 +# Current directory: C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/impl/timing/xsim +# Command line: wbtcv.exe -mode batch -source C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/webtalk/xsim_webtalk.tcl -notrace +# Log file: C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/impl/timing/xsim/webtalk.log +# Journal file: C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/impl/timing/xsim\webtalk.jou +#----------------------------------------------------------- +source C:/Users/JoseIgnacio/CA -notrace diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/webtalk_2004.backup.jou b/lab2CA.sim/sim_1/impl/timing/xsim/webtalk_2004.backup.jou new file mode 100644 index 0000000..0061a89 --- /dev/null +++ b/lab2CA.sim/sim_1/impl/timing/xsim/webtalk_2004.backup.jou @@ -0,0 +1,12 @@ +#----------------------------------------------------------- +# Webtalk v2018.3 (64-bit) +# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018 +# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 +# Start of session at: Fri Feb 15 12:36:24 2019 +# Process ID: 2004 +# Current directory: C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/impl/timing/xsim +# Command line: wbtcv.exe -mode batch -source C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/webtalk/xsim_webtalk.tcl -notrace +# Log file: C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/impl/timing/xsim/webtalk.log +# Journal file: C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/impl/timing/xsim\webtalk.jou +#----------------------------------------------------------- +source C:/Users/JoseIgnacio/CA -notrace diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/xelab.pb b/lab2CA.sim/sim_1/impl/timing/xsim/xelab.pb new file mode 100644 index 0000000000000000000000000000000000000000..938982491a11c89ee93dfd6a861d596838c34b7b GIT binary patch literal 1977 zcmcIl-EP}96t3f>L5X4T&=vvG6(EWl?Y3B!N!gZiwIyAE4c!JL=`i%hpd`v>OOqN& z#m-yoLG}Q{9%nDn+mikpUB{Sjb|vwU`o53nJLd=paKEWxQ-j9-aXspUUq8@nTybKg zLeD|tS9U{k39nYM!<-hR;^uVuf{wv`6n5eOqh)Bd_x3QtEu8fGqkHB4bpMaqy~ZB+ z9n@!ZKGQY$_FR^?iVa5wc9OW)>Lf{W0#O)tS`Hol#yAtx6ZnJ30{9*0@Y0>t@RDk( zZfG8Cviqce*1>0&l@Lq}PnWmF82cJN?16vw&QIHOruO{i?fKQ(DHH8VOcW_gnztuR z^rAqvr<9X4pi>H46C+_rx^akUk&`Hj!fu+PI8BQPrvxDyhcRrmn8=iUD%X+PA0lzJqM zP0R3taXK(;Ob7P7B{7N!T}ovJOc)Dk@ilCf71wm2V7PpBo8FSH@3`fxArE|^t{eL(=iuqNv{|Kw=G$OU>^IXK1}8lq<|pvt zUorC*vm#(l41oog6G#N%x0)?39d+)|wboldgO{GJ|3pOnWCIZ=U0>qgHSqfC)dfsR z_MQkKUCOM)Qpt>JYmLjL&B2735p?GYTXpbRQ$IU_g;Y>UTa06wSBofU930m%?s~N7 zEAV)uTmzjKn~tI<;Bawtb8~4_$I3sL9?XZ$Up4UK9r7o{O0P0^g`(m!rMrvo{g2|2 zFFps&YumqW#z|hy^6qlF7|_lJwi?|yihNl|px!C<)+F^p-{TZKbXDUf>~LvTQ_p?~ z;hIw~z(ard1izfUxwr<~Sd#8q=M}rMd;^Z|9x=NzWxF!H1dl#pa#L$pns?yoS;e^V n4OtD~#UB;*W8ao0_+q2fx1|p!k#ExH0DLcUTML;~d876b$x2qN literal 0 HcmV?d00001 diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/Compile_Options.txt b/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/Compile_Options.txt new file mode 100644 index 0000000..9a46a4a --- /dev/null +++ b/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/Compile_Options.txt @@ -0,0 +1 @@ +-wto "0a5803efda44405bb28bbf43ba22e808" --incr --debug "typical" --relax --mt "2" --maxdelay -L "xil_defaultlib" -L "simprims_ver" -L "secureip" --snapshot "RegFile_time_impl" -transport_int_delays -pulse_r "0" -pulse_int_r "0" -pulse_e "0" -pulse_int_e "0" "xil_defaultlib.RegFile" "xil_defaultlib.glbl" -log "elaborate.log" diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/TempBreakPointFile.txt b/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/TempBreakPointFile.txt new file mode 100644 index 0000000..fdbc612 --- /dev/null +++ b/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/TempBreakPointFile.txt @@ -0,0 +1 @@ +Breakpoint File Version 1.0 diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/obj/xsim_1.c b/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/obj/xsim_1.c new file mode 100644 index 0000000..86a6355 --- /dev/null +++ b/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/obj/xsim_1.c @@ -0,0 +1,148 @@ +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ Copyright (c) 2003-2013 Xilinx, Inc. */ +/* / / All Right Reserved. */ +/* /---/ /\ */ +/* \ \ / \ */ +/* \___\/\___\ */ +/**********************************************************************/ + + +#include "iki.h" +#include +#include +#ifdef __GNUC__ +#include +#else +#include +#define alloca _alloca +#endif +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ Copyright (c) 2003-2013 Xilinx, Inc. */ +/* / / All Right Reserved. */ +/* /---/ /\ */ +/* \ \ / \ */ +/* \___\/\___\ */ +/**********************************************************************/ + + +#include "iki.h" +#include +#include +#ifdef __GNUC__ +#include +#else +#include +#define alloca _alloca +#endif +typedef void (*funcp)(char *, char *); +extern int main(int, char**); +extern void execute_2(char*, char *); +extern void vlog_const_rhs_process_execute_0_fast_no_reg_no_agg(char*, char*, char*); +extern void execute_4(char*, char *); +extern void execute_43(char*, char *); +extern void execute_44(char*, char *); +extern void execute_45(char*, char *); +extern void execute_46(char*, char *); +extern void execute_40(char*, char *); +extern void execute_41(char*, char *); +extern void execute_42(char*, char *); +extern void execute_151(char*, char *); +extern void execute_152(char*, char *); +extern void execute_153(char*, char *); +extern void execute_154(char*, char *); +extern void execute_155(char*, char *); +extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *); +extern void transaction_6(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_7(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_8(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_9(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_10(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_11(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_12(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_13(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_14(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_15(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_16(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_17(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_18(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_19(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_20(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_21(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_22(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_23(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_24(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_25(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_26(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_27(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_28(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_29(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_30(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_31(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_32(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_33(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_34(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_35(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_36(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_37(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_38(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_39(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_40(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_41(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_42(char*, char*, unsigned, unsigned, unsigned); +extern void transaction_43(char*, char*, unsigned, unsigned, unsigned); +funcp funcTab[54] = {(funcp)execute_2, (funcp)vlog_const_rhs_process_execute_0_fast_no_reg_no_agg, (funcp)execute_4, (funcp)execute_43, (funcp)execute_44, (funcp)execute_45, (funcp)execute_46, (funcp)execute_40, (funcp)execute_41, (funcp)execute_42, (funcp)execute_151, (funcp)execute_152, (funcp)execute_153, (funcp)execute_154, (funcp)execute_155, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_6, (funcp)transaction_7, (funcp)transaction_8, (funcp)transaction_9, (funcp)transaction_10, (funcp)transaction_11, (funcp)transaction_12, (funcp)transaction_13, (funcp)transaction_14, (funcp)transaction_15, (funcp)transaction_16, (funcp)transaction_17, (funcp)transaction_18, (funcp)transaction_19, (funcp)transaction_20, (funcp)transaction_21, (funcp)transaction_22, (funcp)transaction_23, (funcp)transaction_24, (funcp)transaction_25, (funcp)transaction_26, (funcp)transaction_27, (funcp)transaction_28, (funcp)transaction_29, (funcp)transaction_30, (funcp)transaction_31, (funcp)transaction_32, (funcp)transaction_33, (funcp)transaction_34, (funcp)transaction_35, (funcp)transaction_36, (funcp)transaction_37, (funcp)transaction_38, (funcp)transaction_39, (funcp)transaction_40, (funcp)transaction_41, (funcp)transaction_42, (funcp)transaction_43}; +const int NumRelocateId= 54; + +void relocate(char *dp) +{ + iki_relocate(dp, "xsim.dir/RegFile_time_impl/xsim.reloc", (void **)funcTab, 54); + + /*Populate the transaction function pointer field in the whole net structure */ +} + +void sensitize(char *dp) +{ + iki_sensitize(dp, "xsim.dir/RegFile_time_impl/xsim.reloc"); +} + +void simulate(char *dp) +{ + iki_schedule_processes_at_time_zero(dp, "xsim.dir/RegFile_time_impl/xsim.reloc"); + // Initialize Verilog nets in mixed simulation, for the cases when the value at time 0 should be propagated from the mixed language Vhdl net + iki_execute_processes(); + + // Schedule resolution functions for the multiply driven Verilog nets that have strength + // Schedule transaction functions for the singly driven Verilog nets that have strength + +} +#include "iki_bridge.h" +void relocate(char *); + +void sensitize(char *); + +void simulate(char *); + +extern SYSTEMCLIB_IMP_DLLSPEC void local_register_implicit_channel(int, char*); +extern void implicit_HDL_SCinstatiate(); + +extern SYSTEMCLIB_IMP_DLLSPEC int xsim_argc_copy ; +extern SYSTEMCLIB_IMP_DLLSPEC char** xsim_argv_copy ; + +int main(int argc, char **argv) +{ + iki_heap_initialize("ms", "isimmm", 0, 2147483648) ; + iki_set_sv_type_file_path_name("xsim.dir/RegFile_time_impl/xsim.svtype"); + iki_set_crvs_dump_file_path_name("xsim.dir/RegFile_time_impl/xsim.crvsdump"); + void* design_handle = iki_create_design("xsim.dir/RegFile_time_impl/xsim.mem", (void *)relocate, (void *)sensitize, (void *)simulate, 0, isimBridge_getWdbWriter(), 0, argc, argv); + iki_set_rc_trial_count(100); + (void) design_handle; + return iki_simulate_design(); +} diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/xsim.mem b/lab2CA.sim/sim_1/impl/timing/xsim/xsim.dir/RegFile_time_impl/xsim.mem new file mode 100644 index 0000000000000000000000000000000000000000..ba77ce1018f35463fd4043ecbedc7d5da614f916 GIT binary patch literal 8013 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 T1>qayyS?G}g_5gJ79RQ^Xhp;? literal 0 HcmV?d00001 diff --git a/lab2CA.sim/sim_1/impl/timing/xsim/xvlog.pb b/lab2CA.sim/sim_1/impl/timing/xsim/xvlog.pb new file mode 100644 index 0000000000000000000000000000000000000000..148e850e823534c38fb3797b4b9510439bcf4199 GIT binary patch literal 447 zcma)%OH0E*6ongY42)0$Zp3beKwSuS%tQpc3qe6~WAOoQ!X%l*3zM0WNlWUl@ZY-i zR;mc?qKgZc`}oc|%@&iyRC~V)`I5rbNb*c#JfL zm4*!JnPM%}Xoamr*i=@x=qJUQOjq0SVv9^b1|6t$Esu^jZ{ED{;+*rV=)E^{JNMJ+ z`FrG*9Erc^wJGM9{3qvr6owly*Iu@;50H%?|ItsoqmN0yQkmL~J0Rpn7j!Cf(-gk* E4M)$2YybcN literal 0 HcmV?d00001 diff --git a/lab2CA.srcs/sources_1/new/BasicModules.v b/lab2CA.srcs/sources_1/new/BasicModules.v index dab1d73..c8775bc 100644 --- a/lab2CA.srcs/sources_1/new/BasicModules.v +++ b/lab2CA.srcs/sources_1/new/BasicModules.v @@ -24,19 +24,16 @@ module BasicModules(); endmodule module gen_clock(); - reg clk; - initial begin clk = 1'b0; end - always begin #5 clk = ~clk; // Period to be determined end - endmodule +//To enable register, input 00 to En, register is always outputting contents module register(input wire clk, reset, input wire [1:0] En, input wire [8:0] Din, @@ -56,6 +53,7 @@ module register(input wire clk, reset, endmodule +//Mux follows intuitive switching module mux(input wire [1:0] switch, input wire [8:0] A,B,C,D, output reg [8:0] out); @@ -67,12 +65,15 @@ module mux(input wire [1:0] switch, else if (switch == 2'b01) begin out = B; end - else if (switch == 2'b11) begin + else if (switch == 2'b10) begin out = C; end - else begin + else if (switch == 2'b11) begin out = D; end + else begin + out = "ZZZZZZZZZ"; + end end endmodule diff --git a/lab2CA.xpr b/lab2CA.xpr index c1369d1..6c8cb34 100644 --- a/lab2CA.xpr +++ b/lab2CA.xpr @@ -31,7 +31,7 @@