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

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

Меня интересует информация по поводу 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;

 

Остановило меня только то, что моя логика стала вести себя не логично. :wacko:

Долго бился над одним багом, и в итоге, избавился от него, когда закоментил --use IEEE.STD_LOGIC_ARITH.ALL; и --use IEEE.numeric_std.all;.

Теперь же, надо перепроверять на работоспособность, без этих библиотек, все что написано ранее, до этого бага.

Ну или, уповать на то, что меня кто-то посвятит.

 

P.S.: теперь я с завистью смотрю на verilog, в котором, по видимому вообще никаких библиотек не надо.

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


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

выражаю благодарность модераторам, которые не позволили мне быть полным КЮ в этой теме.

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


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

Никоим образом не хочу начинать холивар (хотя топикстартер непреднамеренно к тому провоцирует), и просто отпишусь за верилог:

Библиотеки примитивов есть и в верилоге, но они встроены в САПР и следить за их ревизиями не надо (и подключать тоже не надо -САПР подставляет автоматически). Другое дело, что примитивы при разработке RTL вообще не используются, за очень и очень редким исключением, когда вызов примитивов может понадобиться в тестах. И еще, примитивы используются в библиотеках элементов при разработке ASIC, но разработчику там копаться не нужно (эти библиотеки генерируются САПРом)

 

А про vhdl путь отписываются его поклонники.

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


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

выражаю благодарность модераторам, которые не позволили мне быть полным КЮ в этой теме.

 

Извини что подвел тебя.

Ну я понял, да, библиотеки тут наверное ни причем. Проблема опять появилась.

У меня почему то данные в distributed ram меняются, если я, помимо прочего, вывожу их прямо на коннектор, чтобы смотреть изменения логическим анализатором.

Может надо ядро xilinx сhipscope использовать..

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


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

Извини что подвел тебя.

Ну я понял, да, библиотеки тут наверное ни причем. Проблема опять появилась.

У меня почему то данные в distributed ram меняются, если я, помимо прочего, вывожу их прямо на коннектор, чтобы смотреть изменения логическим анализатором.

Может надо ядро xilinx сhipscope использовать..

 

Cмотрите на сигнал we для данной памяти - чудес не бывает ;)

 

PS описания памяти надо делать согласно Language Template

тогда будет память на блочной памяти синтезироваться, а не будет distributed ...

Хотя может Вы специально используете distributed память...

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


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

Меня интересует информация по поводу 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). Подробнее можно прочитать, например, тут и тут

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


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

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

Меня интересует информация по поводу 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;

 

Остановило меня только то, что моя логика стала вести себя не логично. :wacko:

Долго бился над одним багом, и в итоге, избавился от него, когда закоментил --use IEEE.STD_LOGIC_ARITH.ALL; и --use IEEE.numeric_std.all;.

Теперь же, надо перепроверять на работоспособность, без этих библиотек, все что написано ранее, до этого бага.

Ну или, уповать на то, что меня кто-то посвятит.

 

P.S.: теперь я с завистью смотрю на verilog, в котором, по видимому вообще никаких библиотек не надо.

 

Лучше потратьте время и перейдите на system verilog, зато большинство проблем пройдет само собой

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


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

Лучше потратьте время и перейдите на system verilog, зато большинство проблем пройдет само собой

не соглашусь :)

язык описания лишь средство, главное знание цифровой схемотехники

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


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

LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;

Этих трёх библиотек хватает в 99% случаев.

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


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

Этих трёх библиотек хватает в 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 может иметь различную реализацию у разных производителей софта, что тоже делает её использование уязвимым. Коротко и ясно это описано здесь.

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


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

/quote]

Я не теоретик, а хронический практик. С теорией уж пусть спецы разбираются,а мне работать нужно. Я даю человеку практический совет. С подключенной библиотекой всё работает.

post-18832-1438666289_thumb.png

post-18832-1438666316_thumb.png

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


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

Я не теоретик, а хронический практик. С теорией уж пусть спецы разбираются,а мне работать нужно. Я даю человеку практический совет. С подключенной библиотекой всё работает.

Это будет работать и без этой библиотеки, только выражение будет выглядеть не так красиво. Нужно будет явным образом типы приводить.

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


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

Это будет работать и без этой библиотеки, только выражение будет выглядеть не так красиво. Нужно будет явным образом типы приводить.

_Anatoliy Дата Сегодня, 08:36

Угу, для std_logic_vector операция "+" не определена, поэтому и ошибка. Поэтому либо сразу объявлять счётчик как unsigned либо приводить типы.

Изменено пользователем serjj

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


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

Объясните, зачем подключать std_logic_unsigned, если подключена numeric_std?

 

Правильно! К чему это старье. Даешь numeric_std_unsigned и numeric_std_signed ! ;)

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


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

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

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

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

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

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

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

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

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

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