| # 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 |
| } |