如何在 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_constraintrecord_constraint。我没有找到关于此限制的解释。这可能是 EDA 供应商谨慎实施的遗漏吗?还是有其他充分的理由?我很想知道。