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

помогите найти общий язык

Пугалки какие то. И к чему катастрофическому одновременное использование может привести? Компьютер взорвётся? Вы можете сказать почему за почти 20 лет применения этой троицы я ни разу не видел некорректного поведения? Если в течении этого времени минусов не замечалось а плюсы налицо то вывод очевиден. Это я как хронический практик сужу.

 

Потому что в одном месте даются различные определения одним и тем же типам и операциям, "дядя Вася так делает" не аргумент, такого непредсказуемого поведения нужно в принципе избегать, а не ждать странных проблем, тем более никаких сложностей делать всё с использованием одной numeric_std нет, при разработке numeric_std были учтены недостатки std_logic_arith.

 

Так объявили бы сразу счетчики как UNSIGNED, тога код был бы красивее и, самое главное, гораздо понятнее.

Так-же я не вижу ничего зазорного в объявлении счетчика как INTEGER, если так удобнее для реализации.

 

Спорно насчёт понятнее, это прыгать надо выше по тексту и смотреть чего там объявлялось.

 

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


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

Спорно насчёт понятнее, это прыгать надо выше по тексту и смотреть чего там объявлялось.

Я к тому что, если объявить счетчики как UNSIGNED, то нет необходимости применять длинные цепочки типа:

count_shim <= std_logic_vector (unsigned(count_shim) + 1);

И, как мне кажется, код становится несколько понятней.

В любом варианте (ну кроме счетчика на Variable) придётся прыгать и смотреть на место объявления счетчика...

Изменено пользователем Flip-fl0p

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


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

Есть еще вариант в имя переменной добавлять аппендикс с типом. Например, signal test_cnt_u : unsigned(3 downto 0);

Тогда не придется искать определения.

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

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


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

с последними сообщениями от Tausinov и Flip-fl0p я согласен, что так удобней, но с этим

 

Спорно насчёт понятнее, это прыгать надо выше по тексту и смотреть чего там объявлялось.

 

тоже согласен

 

 

нужно подбирать "золотую середину"

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


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

нужно подбирать "золотую середину"

Как мне кажется надо не золотую середину подбирать, а просто выработать определенные правила оформления кода, и им придерживаться. И дальше всё будет происходить на "автомате".

Например я взял за правило применять для счетчиков тип integer, просто мне так удобно. И для тех редких случаев, когда необходимо применить какой-то разряд счетчика, или вывести его на внешний порт, я применяю конвертацию типа integer в unsigned или SLV.

Но ещё у меня есть правило держать счетчики в отдельных модулях. А то я вечно намудрю в коде с счетчиком, и пол дня ищу проблему. Да и в принципе удобно, поскольку если надо мне, например, изменить схему с суммирующего счетчика на вычитающий, то я не переписываю счетчик, а просто меняю его параметр. Или надо, например загружать в счетчик какие-то значения, значит буду применять счетчик с синхронной загрузкой. Но тут скорее связанно с тем, что мне проще схему изначально представить в категориях счетчик, регистр, мультиплексор и пр.

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


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

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

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

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

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

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

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

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

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

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