|  | # Copyright (C) 2017-2020  The Project X-Ray Authors | 
|  | # | 
|  | # Use of this source code is governed by a ISC-style | 
|  | # license that can be found in the LICENSE file or at | 
|  | # https://opensource.org/licenses/ISC | 
|  | # | 
|  | # SPDX-License-Identifier: ISC | 
|  | # Sweep all values of $prop on given I/O $port | 
|  | # Write out bitstream for all legal values | 
|  |  | 
|  | set vals [list_property_value $prop $port] | 
|  | foreach {val} $vals { | 
|  | puts $val | 
|  | # Not all listable properties are settable | 
|  | # Its easiest to try setting and see if it sticks | 
|  | set_property -quiet $prop $val $port | 
|  | set got [get_property $prop $port] | 
|  | if {"$got" != "$val"} { | 
|  | puts "  Skipping: wanted $val, got $got" | 
|  | continue | 
|  | } | 
|  | if {[catch {write_bitstream -force design_$val.bit} issue]} { | 
|  | puts "WARNING failed to write: $issue" | 
|  | continue | 
|  | } | 
|  | # Only write checkpoints for acceptable bitstreams | 
|  | write_checkpoint -force design_$val.dcp | 
|  | } |