如何实例化VHDL中只有一个字段的记录?

Cir*_*四事件 2 vhdl

如果记录有多个字段,则可以:

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变量:

  • 我正在开始设计,这些是输入,我想我稍后会添加更多输入
  • 好奇心

Bri*_*ond 6

命名协会.

constant record_one_field : t := (abit => '0');

通常,您可以使用命名或位置关联,但对于只有一个组件的记录或数组,只有命名关联可以工作,因为位置不明确,完全如您所怀疑的那样.