如何在 VHDL 2008 中限制整数
How to constrain integer in VHDL 2008
我想限制记录中的变量。这个变量是id_dd in test_vector (record)
type test_vector is record
id_dd : integer;
stimulus : bit_vector;
response : bit_vector;
end record test_vector;
type test_time is record
stimulus_time : time;
response_delay : delay_length;
end record test_time;
type test_application is record
test_to_apply : test_vector;
application_time : test_time;
end record test_application;
subtype schedule_test is test_application (test_to_apply ( id_dd (0 to 100) ,
stimulus (0 to 7),
response(0 to 9)));
Modelsim 错误是:
Constraint for record element "test_vector.id_dd" (at depth 1) cannot apply to non-composite type (std.STANDARD.INTEGER)
如何使用 子类型 约束 id_dd?
根据 LRM:
record_constraint ::=
( record_element_constraint { , record_element_constraint } )
record_element_constraint ::=
record_element_simple_name element_constraint
element_constraint ::=
array_constraint
| record_constraint
如您所见,元素约束不能是 range_constraint
,只能是 array_constraint
或 record_constraint
。我没有找到关于此限制的解释。这可能是 EDA 供应商谨慎实施的遗漏吗?还是有其他充分的理由?我很想知道。
我想限制记录中的变量。这个变量是id_dd in test_vector (record)
type test_vector is record
id_dd : integer;
stimulus : bit_vector;
response : bit_vector;
end record test_vector;
type test_time is record
stimulus_time : time;
response_delay : delay_length;
end record test_time;
type test_application is record
test_to_apply : test_vector;
application_time : test_time;
end record test_application;
subtype schedule_test is test_application (test_to_apply ( id_dd (0 to 100) ,
stimulus (0 to 7),
response(0 to 9)));
Modelsim 错误是:
Constraint for record element "test_vector.id_dd" (at depth 1) cannot apply to non-composite type (std.STANDARD.INTEGER)
如何使用 子类型 约束 id_dd?
根据 LRM:
record_constraint ::=
( record_element_constraint { , record_element_constraint } )
record_element_constraint ::=
record_element_simple_name element_constraint
element_constraint ::=
array_constraint
| record_constraint
如您所见,元素约束不能是 range_constraint
,只能是 array_constraint
或 record_constraint
。我没有找到关于此限制的解释。这可能是 EDA 供应商谨慎实施的遗漏吗?还是有其他充分的理由?我很想知道。