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

Проблемы реализации в VHDL

ясно-понятно.

 

Вот и научились бы пользоваться симулятором.

 

Когда-то меня зазвали ...

Когда-то давно [...] меня убеждали ...

Но - если что - я стараюсь учиться. Если этого требует дело.

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


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

А можно тут "разжевать"? Вроде как HOLD - это Enable триггера, а клок как раз WE синхронный (если че, он ругается на асинхронные клоки безбожно). Ну и установочный вход триггера - RESET. По моему - все честно.

 

Кстати - я раньше "Enable" ставил внутрь клока - но на сайте альтеры увидел классический пример описания триггера и там Enable был именно так использован.

Из такого кода не вполне очевидно, что HOLD - синхронный enable, так как он находится за пределами условия rising_edge(clk) и включён в список чувствительности.

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

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

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


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

Из такого кода не вполне очевидно, что HOLD - синхронный enable, так как он находится за пределами условия rising_edge(clk) и включён в список чувствительности.

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

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

По поводу HOLD - des00 уже отписался по поводу примеров с сайта альтеры.. Ну что ж - опыт есть опыт.. По мне было бы логичным HOLD оставлять внутри, но авторитет сайта для меня был высок и стиль я поменял. Будем отыгрывать назад.

 

По поводу перечня в списке чувствительности - тот же квартус жутко ругается на сигналы, используемые внутри и не включенные в список - на это просто не обращать внимание?

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


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

По поводу перечня в списке чувствительности - тот же квартус жутко ругается на сигналы, используемые внутри и не включенные в список - на это просто не обращать внимание?

Не может такого быть, синхронный процесс не обладает чувствительностью к сигналам, находящимся внутри блока IF rising_edge(clk)

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


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

Не может такого быть, синхронный процесс не обладает чувствительностью к сигналам, находящимся внутри блока IF rising_edge(clk)

Каков диагноз? исправление HOLD чтотщ поменяло?

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


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

Эх, если бы еще уметь это делать... Меня максимум хватало на RTL-viewer. Но там я ничего крамольного не увидел.

 

Пытался обмануть. Сделал массив 9-разрядным.. Хе-хе.. Оптимизатор мне сказал, что ай-яй-яй и убил 52 неиспользуемых регистра

 

Можно попробовать для обмана использовать атрибут keep, что-то вроде:

 

attribute keep: boolean;

attribute keep of xHeader: signal is true;

 

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

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


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

1) сигнал записи 1us период тактовой 500ns. Это две записи подряд. Так и должно быть?

2) Тактовая вообще как тактовая разведена? или просто как сигнал?

3) Констрейны на тактовую прописаны?

 

Имхо дело в каких-нибудь гонках. А замена констант может приводить к тому, что что-то где-то переразвелось более удачно. В настройках разводчика есть параметр(по крайней мере у ксайлинкс), который определяет некий начальный коэффициент для алгоритма. Если не менять код, а поиграть этим коэффициентом, может быть появится тот же результат что и при смене констант.

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

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


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

Здравствуйте, не могли вы мне помочь с задание

на языке VHDL требуется написать программу вычисления формулы

вот условие

входы 16 и 12 разрядные

при умножении разрядности операндов складываются. при сложении/вычитании результирующая разрядность- максим разрядность операнда +1

деление целочисленное, остаток отбрасывается

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

 

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


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

Здравствуйте, не могли вы мне помочь с задание

на языке VHDL требуется написать программу вычисления формулы

вот условие

входы 16 и 12 разрядные

при умножении разрядности операндов складываются. при сложении/вычитании результирующая разрядность- максим разрядность операнда +1

деление целочисленное, остаток отбрасывается

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

где формула?

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


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

где формула?

формула любая

главное чтобы в ней было умножение, сложение, вычитание и деление

и сложные операции через синхронный процесс

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


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

формула любая

главное чтобы в ней было умножение, сложение, вычитание и деление

и сложные операции через синхронный процесс

для начала посмотрите это - умножение, сложение, вычитание

 

реализация деления

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


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

для начала посмотрите это - умножение, сложение, вычитание

 

реализация деления

 

спасибо

а как сделать это в одной программе?

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


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

спасибо

а как сделать это в одной программе?

Можно соединять как компоненты или с помощью сигналов...

 

 

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


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

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

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

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

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

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

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

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

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

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