假设我定义了一条包含字段 的记录std_ulogic_vector来表示更大的std_ulogic_vector. 使用串联将此记录转换为大向量非常简单(无需知道每个字段的大小)。
我该如何做相反的事情,例如将大数据转换std_ulogic_vector回记录?
例子 :
architecture RTL of record_conversion is
type data_t is record
top : std_ulogic_vector(4 downto 0);
bottom : std_ulogic_vector(2 downto 0);
end record data_t;
signal record_s : data_t;
signal vector_s : std_ulogic_vector(7 downto 0);
begin
-- vector to record works
--vector_s <= record_s.top & record_s.bottom;
-- record to vector does not work
(record_s.top, record_s.bottom) <= vector_s;
-- tedious solution with knowledge of the field size
record_s.top <= vector_s(7 downto 3); …Run Code Online (Sandbox Code Playgroud)