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

VHDL грамматика

Здравствуйте.

Подскажите, пожалуйста, есть ли на VHDL автоматические конструкции присвоения значений выводам шины или необходимо прописывать каждый вывод отдельно? Например. Энному выводу присваиваем '0', а остальным '1'.

                      
read_fifo(n) <= '0';
                             
read_fifo(not n) <='1';

 

Или всем выводам присвоить единицы, но ширина шины - это изменяемый параметр.

например

read_fifo  <=  "11111111";

Нужно чтобы количество единиц зависело от ширины шины и автоматически изменялось при изменении параметра.

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


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

Добрый день.

read_fifo <= (others => '0');

read_fifo <= (others => '1');

Изменено пользователем Herz
Избыточное цитирование

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


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

read_fifo <= (others => '0');

read_fifo <= (others => '1');

 

Энному выводу присваиваем '0', а остальным '1' = ((все "1") AND ("0" )) сдвинутые на "n" позиций циклически)

 

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


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

Здравствуйте.

Подскажите, пожалуйста, есть ли на VHDL автоматические конструкции присвоения значений выводам шины или необходимо прописывать каждый вывод отдельно? Например. Энному выводу присваиваем '0', а остальным '1'.

                      
read_fifo(n) <= '0';

read_fifo(not n) <='1';

Если n -- константа, то

read_fifo <= (n = > '0', others => '1');

Если n -- изменяется во времени, то через целое. 1 в n-ом разряде -- это 2**n.

read_fifo <= std_logic_vector (to_unsigned (2 ** n, read_fifo'length));

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


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

Нужно чтобы количество единиц зависело от ширины шины и автоматически изменялось при изменении параметра.

Пишу так, предварительно объявив параметр именем dwidth.

ieee.numeric_std.all;

Entity device is
generic(
   dwidth:natural:=16
);
port(
...
dout:out std_logic_vector(dwidth-1 downto 0)
);
end entity;
...
dout<=std_logic_vector(to_signed(-1,dwidth));

 

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


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

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

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

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

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

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

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

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

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

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