zuuuuk 0 22 октября, 2009 Опубликовано 22 октября, 2009 · Жалоба доброго времени суток. хотелось бы узнать как можно произвести преобразование сигналов собственного типа в стандартный. type bs is record signal timer1 : std_logic_vector (3 downto 0); signal timer2 : std_logic_vector (3 downto 0); end type bs; type my_type is record signal bs : bs; signal tk : bs; end type my_type signal r : my_type; signal tmp : std_logic_vector (7 downto 0); begin tmp<=r.bs; можно ли объеденить сигнал r.bs в шину std_logic_vector (7 downto 0) ведь этот сигнал занимает всего 8 линий. так же как и std_logic_vector (7 downto 0). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sefo 0 22 октября, 2009 Опубликовано 22 октября, 2009 · Жалоба tmp<=r.bs.timer1 & r.bs.timer2; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zuuuuk 0 22 октября, 2009 Опубликовано 22 октября, 2009 · Жалоба как произвести перезапись r.bs <= tmp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 22 октября, 2009 Опубликовано 22 октября, 2009 · Жалоба Скажите, о каком языке идет речь? Если про VHDL 1987/1993, то я бы не стал писать слово signal перед названием поля при объявлении структуры и не ожидал, что компилятор или симулятор сами догадаются как из структуры сделать вектор. Ни в каком языке я не стал бы называл поле bs также как и тип bs. Привычный для применяемых мной синтезаторов текст выглядел бы примерно так: library IEEE; use IEEE.std_logic_1164.all; entity record_access is port ( t1, t2 : in std_logic_vector(3 downto 0); t : out std_logic_vector(7 downto 0) ); end record_access; architecture test of record_access is type bs_t is record timer1 : std_logic_vector (3 downto 0); timer2 : std_logic_vector (3 downto 0); end record; type my_type_t is record bs : bs_t; tk : bs_t; end record; signal r : my_type_t; signal tmp : std_logic_vector (7 downto 0); begin r.bs.timer1 <= t1; r.bs.timer2 <= t2; tmp<=r.bs.timer1 & r.bs.timer2; r.tk.timer1 <= tmp(7 downto 4); r.tk.timer2 <= tmp(3 downto 0); t <= r.tk.timer1 & r.tk.timer2; end test; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться