Привет У меня есть сигнал, который используется во многих местах и может быть изменен в будущем. Поэтому, чтобы упростить обслуживание, я сделал TYPE-декларацию с именем T_RowInt.
Я сделал два сигнала «типизированный» и «нетипизированный», оба из которых равны целому диапазону от -63 до 63, чтобы продемонстрировать проблему.
Код следующий:
type T_RowInt is range -63 to 63;
signal typed : T_RowInt;
signal untyped : integer range -63 to 63;
signal text_col : integer range 0 to 127 := 0;
signal bank : std_logic_vector(2 downto 0) := "111";
signal page : std_logic_vector(3 downto 0) := "0000";
Я использую вышеупомянутое в следующих выражениях:
addr_r_dram(19 downto 0)<= bank & page & std_logic_vector(to_unsigned(typed,6)) & std_logic_vector(to_unsigned(text_col, 7));
Это не проходит проверку синтаксиса с "to_unsigned не может иметь такие операнды в этом контексте" Однако , это выражение:
addr_r_dram(19 downto 0)<= bank & page & std_logic_vector(to_unsigned(untyped,6)) & std_logic_vector(to_unsigned(text_col, 7));
В порядке
Есть ли способ форсировать преобразование пользовательского сигнала TYPED?
Спасибо
Отметить