vladeg 0 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба Здравствуйте. Меня интересует информация по поводу VHDL библиотек. Я мечтаю увидеть простую хронологию, с датами и кратким описанием того, что, чем, и зачем было обновлено. Хочу знать какая библиотека новее, какая полностью устарела и тд. И что самое главное, какие библиотеки нельзя/нет смысла использовать одновременно. Я первый раз пишу код "не для баловства". Очень многое пишу прямо в топ модуль, не раскидывая на суб модули. Добавлял библиотеки по мере надобности, после того как начинал использовать какой то новый оператор. Добавляя новую библиотеку, я не удалял предыдущие, потому что, понятия не имею что делаю думал что "если что", ISE мне скажет. В итоге, у меня в топ модуле просто свалка: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use IEEE.numeric_std.all; use ieee.std_logic_misc.all; Остановило меня только то, что моя логика стала вести себя не логично. Долго бился над одним багом, и в итоге, избавился от него, когда закоментил --use IEEE.STD_LOGIC_ARITH.ALL; и --use IEEE.numeric_std.all;. Теперь же, надо перепроверять на работоспособность, без этих библиотек, все что написано ранее, до этого бага. Ну или, уповать на то, что меня кто-то посвятит. P.S.: теперь я с завистью смотрю на verilog, в котором, по видимому вообще никаких библиотек не надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба выражаю благодарность модераторам, которые не позволили мне быть полным КЮ в этой теме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба Никоим образом не хочу начинать холивар (хотя топикстартер непреднамеренно к тому провоцирует), и просто отпишусь за верилог: Библиотеки примитивов есть и в верилоге, но они встроены в САПР и следить за их ревизиями не надо (и подключать тоже не надо -САПР подставляет автоматически). Другое дело, что примитивы при разработке RTL вообще не используются, за очень и очень редким исключением, когда вызов примитивов может понадобиться в тестах. И еще, примитивы используются в библиотеках элементов при разработке ASIC, но разработчику там копаться не нужно (эти библиотеки генерируются САПРом) А про vhdl путь отписываются его поклонники. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladeg 0 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба выражаю благодарность модераторам, которые не позволили мне быть полным КЮ в этой теме. Извини что подвел тебя. Ну я понял, да, библиотеки тут наверное ни причем. Проблема опять появилась. У меня почему то данные в distributed ram меняются, если я, помимо прочего, вывожу их прямо на коннектор, чтобы смотреть изменения логическим анализатором. Может надо ядро xilinx сhipscope использовать.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба Извини что подвел тебя. Ну я понял, да, библиотеки тут наверное ни причем. Проблема опять появилась. У меня почему то данные в distributed ram меняются, если я, помимо прочего, вывожу их прямо на коннектор, чтобы смотреть изменения логическим анализатором. Может надо ядро xilinx сhipscope использовать.. Cмотрите на сигнал we для данной памяти - чудес не бывает ;) PS описания памяти надо делать согласно Language Template тогда будет память на блочной памяти синтезироваться, а не будет distributed ... Хотя может Вы специально используете distributed память... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба Меня интересует информация по поводу VHDL библиотек. ... library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use IEEE.numeric_std.all; use ieee.std_logic_misc.all; Не используйте STD_LOGIC_ARITH/STD_LOGIC_UNSIGNED и numeric_std одновременно. Вообще лучше не использовать STD_LOGIC_ARITH/STD_LOGIC_UNSIGNED, вместо этого применять только numeric_std (numeric это библиотека IEEE унифицированная среди всех производителей софта и сделанная строго по стандарту VHDL, arith и unsigned - библиотеки Synopsis). Подробнее можно прочитать, например, тут и тут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nepoch 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба Здравствуйте. Меня интересует информация по поводу VHDL библиотек. Я мечтаю увидеть простую хронологию, с датами и кратким описанием того, что, чем, и зачем было обновлено. Хочу знать какая библиотека новее, какая полностью устарела и тд. И что самое главное, какие библиотеки нельзя/нет смысла использовать одновременно. Я первый раз пишу код "не для баловства". Очень многое пишу прямо в топ модуль, не раскидывая на суб модули. Добавлял библиотеки по мере надобности, после того как начинал использовать какой то новый оператор. Добавляя новую библиотеку, я не удалял предыдущие, потому что, понятия не имею что делаю думал что "если что", ISE мне скажет. В итоге, у меня в топ модуле просто свалка: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use IEEE.numeric_std.all; use ieee.std_logic_misc.all; Остановило меня только то, что моя логика стала вести себя не логично. Долго бился над одним багом, и в итоге, избавился от него, когда закоментил --use IEEE.STD_LOGIC_ARITH.ALL; и --use IEEE.numeric_std.all;. Теперь же, надо перепроверять на работоспособность, без этих библиотек, все что написано ранее, до этого бага. Ну или, уповать на то, что меня кто-то посвятит. P.S.: теперь я с завистью смотрю на verilog, в котором, по видимому вообще никаких библиотек не надо. Лучше потратьте время и перейдите на system verilog, зато большинство проблем пройдет само собой Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба Лучше потратьте время и перейдите на system verilog, зато большинство проблем пройдет само собой не соглашусь :) язык описания лишь средство, главное знание цифровой схемотехники Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба 2 Maverick ну это уже холивар точно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.numeric_std.all; Этих трёх библиотек хватает в 99% случаев. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба Этих трёх библиотек хватает в 99% случаев. Объясните, зачем подключать std_logic_unsigned, если подключена numeric_std? По приведённой мною ссылке: This article is based on an email conversion I had with one VHDL expert.If you browse through some forums about VHDL then you may see some suggestions such as , use "numeric_std" library instead of "std_logic_arith" and "std_logic_unsigned" std_logic_unsigned это ещё одна библиотека синопсис, которая к ieee имеет весьма опосредованное отношение (собственно их библиотеки вкорячили в пак ieee только по инициативе компании). Если уж использовать VHDL, то тогда ИМХО нужно соблюдать его строжайшую типизацию, которая не допускает signed/unsigned арифметики с типом std_logic_vector. Библиотеки std_logic_signed/std_logic_unsigned нарушают это удтверждение, что противоречит стандарту. Вместо этого numeric_std вводит типы SIGNED/UNSIGNED и арифметические операции для работы с ними (никаких дополнительных стандартных библиотек для арифметики не требуется). Библиотека std_logic_arith может иметь различную реализацию у разных производителей софта, что тоже делает её использование уязвимым. Коротко и ясно это описано здесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 4 августа, 2015 Опубликовано 4 августа, 2015 · Жалоба /quote] Я не теоретик, а хронический практик. С теорией уж пусть спецы разбираются,а мне работать нужно. Я даю человеку практический совет. С подключенной библиотекой всё работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aat_81 0 4 августа, 2015 Опубликовано 4 августа, 2015 · Жалоба Я не теоретик, а хронический практик. С теорией уж пусть спецы разбираются,а мне работать нужно. Я даю человеку практический совет. С подключенной библиотекой всё работает. Это будет работать и без этой библиотеки, только выражение будет выглядеть не так красиво. Нужно будет явным образом типы приводить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 4 августа, 2015 Опубликовано 4 августа, 2015 (изменено) · Жалоба Это будет работать и без этой библиотеки, только выражение будет выглядеть не так красиво. Нужно будет явным образом типы приводить. _Anatoliy Дата Сегодня, 08:36 Угу, для std_logic_vector операция "+" не определена, поэтому и ошибка. Поэтому либо сразу объявлять счётчик как unsigned либо приводить типы. Изменено 4 августа, 2015 пользователем serjj Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 4 августа, 2015 Опубликовано 4 августа, 2015 · Жалоба Объясните, зачем подключать std_logic_unsigned, если подключена numeric_std? Правильно! К чему это старье. Даешь numeric_std_unsigned и numeric_std_signed ! ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться