説明
指定されたレコード名をキーとし、指定された書き込み可能フィールド名から有効な値マッピングのリスト/範囲へのディクショナリにマップしたディクショナリを取得します。有効な値がレコード間で異なり、かつ all_records が True の場合はこの形式となり、それ以外の場合は、リソースに対する指定された書き込み可能フィールド名から有効な値マッピングのリスト/範囲へのディクショナリを返します。読み取り専用フィールドは、指定されていても除外されます。
構文
get_valid_values([<field_names>], [<record_names>], all_records=False)
戻り値
all_records が True の場合は {record: {field: [valid_value, ...], ...}, ...} の形式のディクショナリ、それ以外の場合は {field: [valid_value, ...], ...} の形式のディクショナリ。
パラメーター
| 名前 | 説明 |
|---|---|
| [<field_names>] | フィールド名のリスト。 デフォルト: すべてのフィールド |
| [<record_names>] | レコード名のリスト。指定されている場合、all_records フラグは無視され、リスト内のレコードのみが考慮されます。 デフォルト: all_records の値に依存します。 |
| [all_records] | True の場合、レコードごとに有効な値を返します (同じフィールドでもレコードによって有効な値が異なる可能性があるため)。それ以外の場合は、リソース全体で共通の有効な値のみを返します。 デフォルト: False |
例
# Get valid values for all writable fields of a resource
proj = open_project('my_design.pdm')
io_config = proj.get_block('io').get_resource('io_config')
valid = io_config.get_valid_values()
# valid == {'io_type': ['XP', 'HD', 'HDIO'], 'data_rate': ['SDR', 'DDR'], ...}
# Get valid values for specific fields only
valid = io_config.get_valid_values(['io_type', 'data_rate'])
# Get valid values per record (may differ from resource-level valid values)
all_valid = io_config.get_valid_values(all_records=True)
# all_valid == {'io_inst1': {'io_type': ['XP', 'HD', 'HDIO'], ...}, ...}