DSIoffe 2 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба Здравствуйте все! Я хотел получить из входных импульсов парафазный сигнал. Написал вот такой код: library ieee; use ieee.std_logic_1164.all; entity when_test is port ( clock: in std_logic; outp: out std_logic; outn: out std_logic ); end when_test; architecture behavioral of when_test is begin outp <= clock; outn <= '1' when clock = '0' else '1'; end behavioral; Инверсию я сделал с помощью оператора when - else. На том месте, где я хотел получить инверсный сигнал (outn), постоянный высокий уровень. Подскажите, пожалуйста, где я ошибся? На всякий случай прикладываю проект для Questa Sim. Заранее признателен. when_test.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FakeDevice 0 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба опечатка, надо так: outn <= '1' when clock = '0' else '0'; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба Спасибо! Ведь полдня на это таращился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 12 августа, 2019 Опубликовано 12 августа, 2019 (изменено) · Жалоба 4 hours ago, DSIoffe said: Спасибо! Ведь полдня на это таращился. не проще было написать clk_i <= not(clk); Изменено 12 августа, 2019 пользователем Maverick_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба 14 минут назад, Maverick_ сказал: не проще было написать Проще. Но не люблю писать not про std_logic :) И мне проще воспринимать мой вариант примерно в 23 часа с выключающимся мозгом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба 23 часа назад, DSIoffe сказал: Но не люблю писать not про std_logic : А почему если не секрет ? Поделитесь опытом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба 11 часов назад, Flip-fl0p сказал: А почему если не секрет ? Поделитесь опытом Потому что not - это про булевский тип, где только два значения, а про std_logic - это упрощение жизни, и где-то описано, как именно оно реализовано, и надо знать (и помнить), как именно, чтобы иногда не наступать на загадочные грабли. После общения с пакетами numeric_std и прочими я написал себе преобразования из натуральных чисел в std_logic_vector и обратно, и с тех пор в заголовках текстов на VHDL у меня не бывает чужих пакетов, кроме ieee.std_logic_1164 :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 13 августа, 2019 Опубликовано 13 августа, 2019 (изменено) · Жалоба 57 минут назад, DSIoffe сказал: Потому что not - это про булевский тип Ничего подобного. Это функция, перегруженная для разных типов аргументов. 57 минут назад, DSIoffe сказал: После общения с пакетами numeric_std и прочими я написал себе преобразования из натуральных чисел в std_logic_vector и обратно :facepalm: 57 минут назад, DSIoffe сказал: и с тех пор в заголовках текстов на VHDL у меня не бывает чужих пакетов, кроме ieee.std_logic_1164 Зато постоянно нужно таскать свои вместо использования стандартных. Видимо, велосипедоизобретательство неискоренимо. Изменено 13 августа, 2019 пользователем andrew_b Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба 2 минуты назад, andrew_b сказал: Это функция, перегруженная для разных типов аргументов. Это теперь она такое, а в моё время это был булевский оператор :) И не надо было думать, как она работает для каждого типа. 3 минуты назад, andrew_b сказал: Зато постоянно нужно таскать свои вместо использования стандартных. Ага, принёс 89 строк кода. Не переломился :) Стандартные носить тяжелее :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба 6 минут назад, DSIoffe сказал: Это теперь она такое, а в моё время это был булевский оператор Да ладно. std_logic был уже в '87. 7 минут назад, DSIoffe сказал: Стандартные носить тяжелее Их вообще носить не надо. Они есть в каждом САПРе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 0 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба Насколько я знаю библиотека Use.numeric_std.all и 1164 допускаются для использования в стандартах, остальные библиотеки нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться