Как определить значение по умолчанию для типа записи - PullRequest
2 голосов
/ 30 марта 2019

Можно ли определить значение по умолчанию для типа записи или вообще для любого определенного пользователем типа?

Что-то вроде (псевдо VHDL):

type t_foo is record
    a : integer := 4;
    b : std_logic := '0';
end record;

или

subtype glarp is integer range 0 to 10 := 5;

РЕДАКТИРОВАТЬ: изменение glarp от определения типа к подтипу.

1 Ответ

0 голосов
/ 31 марта 2019

Я позволю себе превратить комментарий в ответ.Начальное значение для типа записи может быть определено константой этого типа.

type t_foo is record
    a : integer;
    b : std_logic;
end record;

constant INIT_T_FOO : t_foo := (a => 4, b => '0');

signal bar : t_foo := INIT_T_FOO;

Недостатком этого подхода является то, что пользователь должен гарантировать, что правильное начальное значение устанавливается каждый раз, когда объект типаt_foo определяется.Использование константы для определения начального значения может сэкономить время при наборе текста и упростит изменение начального значения позже.Но опять же, невозможно обеспечить конкретное начальное значение таким способом, все сводится к дисциплине кодирования и человеческим ошибкам, поэтому это неоптимальное решение.

...