如果记录有多个字段,则可以:
type record_one_field_t is record
abit : bit;
abit2 : bit;
end record;
constant record_one_field : record_one_field_t := ('0', '1');
Run Code Online (Sandbox Code Playgroud)
但是如果有一个字段:
type record_one_field_t is record
abit : bit;
end record;
constant record_one_field : record_one_field_t := ('0');
Run Code Online (Sandbox Code Playgroud)
GHDL 0.34给出:
can't match character literal '0' with type record type "record_one_field_t"
Run Code Online (Sandbox Code Playgroud)
我认为这是因为('0')作为一个角色被贬低.
为什么我要这样做而不只是使用bit变量:
命名协会.
constant record_one_field : t := (abit => '0');
通常,您可以使用命名或位置关联,但对于只有一个组件的记录或数组,只有命名关联可以工作,因为位置不明确,完全如您所怀疑的那样.