Перейти к содержанию
    

Преобразование собственных типов в std_logic_vector

доброго времени суток.

 

хотелось бы узнать как можно произвести преобразование сигналов собственного типа в стандартный.

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).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите, о каком языке идет речь?

 

Если про 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;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...