2016-08-09 18 views
1

Ich möchte Variable in Datensatz beschränken. Diese Variable ist id_dd in test_vector (Rekord)So beschränken Sie Ganzzahl in VHDL 2008

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 Fehler ist:

Constraint for record element "test_vector.id_dd" (at depth 1) cannot apply to non-composite type (std.STANDARD.INTEGER) 

Wie kann ich einschränken id_dd mit Subtyp?

Antwort

0

Nach der LRM:

record_constraint ::= 
    (record_element_constraint { , record_element_constraint }) 

record_element_constraint ::= 
    record_element_simple_name element_constraint 

element_constraint ::= 
    array_constraint 
    | record_constraint 

Wie Sie sehen können, ein Bedingungselement kann kein range_constraint sein, nur ein array_constraint oder ein record_constraint. Ich habe keine Erklärung für diese Einschränkung gefunden. Könnte es sich um eine Auslassung handeln, die von EDA-Anbietern gewissenhaft umgesetzt wurde? Oder gibt es einen anderen guten Grund? Ich wäre daran interessiert zu wissen.