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

Как в плис реализовать триггер защёлку по уровню?

Нашел в комментах к статье https://habr.com/ru/post/427011/

 

 
Quote

 


always @(posedge clk) begin
    a = b;
    b = c;
end


поведение в данном случае полностью определённое и будет просинтезировано аналогично


always @(posedge clk) begin
    a <= b;
    b <= c;
end


На выходе вы получите сдвиговый регистр a < — b < — c.

Если же строчки присвоения поменять местами, то поведение данных блоков будет отличаться — в случае с неблокирующими присваиваниями по-прежнему будет трёхбитовый сдвиговый регистр, а вот в случае с блокирующими — двухбитовый a < — c, при этом сигнал b скорее всего будет исключен в процессе оптимизации синтеза.

 

 

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

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


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

45 minutes ago, Nick_K said:

Задайте порог в 304. Можно ещё попробовать прикрутить uncertanity констрейн, но я не уверен что такое есть в ПЛИС. Ну и эффект будет не заоблачный

create_clock -period 320MHz -name {CLK} [get_ports {CLK}]

Fmax-350.75 MHz    Restricted Fmax - 304.04 MHz

----------------------

create_clock -period 304MHz -name {CLK} [get_ports {CLK}]

Fmax-354.99 MHz    Restricted Fmax - 304.04 MHz

----------------------

Прям рандом какой-то получается :biggrin:

derive_clock_uncertainty прикрутил изначально

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


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

10 minutes ago, zombi said:

Fmax-350.75 MHz    Restricted Fmax - 304.04 MHz

а кто может объяснить что это значит? Это что - проект будет работать на 350 МГц, но по даташиту допустимо подавать 304?

Судя по https://www.intel.com/content/www/us/en/programmable/support/support-resources/knowledge-base/solutions/rd09302013_60.html

вроде как на 350 должно запуститься?

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

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


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

3 minutes ago, zombi said:

create_clock -period 320MHz -name {CLK} [get_ports {CLK}]

Fmax-350.75 MHz    Restricted Fmax - 304.04 MHz

----------------------

create_clock -period 304MHz -name {CLK} [get_ports {CLK}]

Fmax-354.99 MHz    Restricted Fmax - 304.04 MHz

----------------------

Прям рандом какой-то получается :biggrin:

derive_clock_uncertainty прикрутил изначально

тогда пробуйте задать 300 ровно (ибо там могут быть приколы с делением) или 304,04 :) и повысить значения unsertanity (джиттер). А вообще для Вашего проекта полученных результатов и так достаточно ИМХО.

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


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

Это понятно. Это даже не проект, а просто эксперимент.

Я раньше рисовал квадратики в блок-схеме, теперь буду писать в текстовом редакторе.

Вот и пытаюсь заранее максимально подводных камней выловить при таком переходе.

6 minutes ago, Nick_K said:

тогда пробуйте задать 300 ровно (ибо там могут быть приколы с делением) или 304,04 :)

create_clock -period 300MHz -name {CLK} [get_ports {CLK}]

Fmax-355.24 MHz    Restricted Fmax - 304.04 MHz

-------------

create_clock -period 304.04MHz -name {CLK} [get_ports {CLK}]

Fmax-354.99 MHz    Restricted Fmax - 304.04 MHz

:clapping:

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


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

Наркоманы в этом Интеле. Я давно подозревал)

Кстати может оно uncertanity как-то прибавляет к периоду и пытаетсяокруглять...

Но эксперимент интересный

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


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

Попробуйте задать 370 МГц - выдаст красным в конце концов?

3 minutes ago, Nick_K said:

может оно uncertanity как-то прибавляет к периоду

насколько понял в доках про sdc - отнимается от периода (ну, чтобы было хуже разработчику) и считается времянка для отчета.

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


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

4 minutes ago, Yuri124 said:

Попробуйте задать 370 МГц - выдаст красным в конце концов?

Что непонятного? Ограничение для синтезатора 304! Выше уже нельзя. Какой смысл повышать частоту, если на низких и так ругается?

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


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

Quote

In the TimeQuest timing analyzer, Fmax is only based on the setup check, while the Restricted Fmax checks setup, hold and minimum period/pulse width. Usually, Fmax is not limited by hold checks as they are generally same-edge relationships and therefore independent of frequency. However, if you have an inverted clock transfer or a multicycle transfer then the hold relationship is no longer a same-edge transfer and therefore changes with frequency. If the hold check limits the Fmax more than the setup check, the TimeQuest timing analyzer displays Limit due to hold check as the reason for the restricted Fmax.

Ну, если из этого абзаца взять "and minimum period/pulse width" - то да, ограничено свойствами железяки.

3 minutes ago, zombi said:

при 370 MHz уже примерно 1/3 триггеров по tSetup не проходят

Вот это и пытался увидеть - т.е. прога всё же, похоже, допускает работу на 350 МГц (если бы ругался - было бы красным, а так - только предупреждение, ИМХО). Похоже - в данном проекте , где hold не важен, 350 должно работать.

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


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

On 7/16/2020 at 6:01 PM, zombi said:

И timequest всегда пишет красным Uncostrained Paths

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

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


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

Ничего не констрейнил в принципе. Это всё эксперимент "сферический конь в вакууме".

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


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

On 7/15/2020 at 3:56 PM, Nick_K said:

Тогда я всё правильно понял. "Там" не нужно ничего делать, а просто заменить на нормальное.

И для встроенного текстового редактора есть возможность размер шрифта менять, через Tools-Options-Text Editor-Fonts.

Но никто ж новичку не помог...

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


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

4 hours ago, zombi said:

И для встроенного текстового редактора есть возможность размер шрифта менять, через Tools-Options-Text Editor-Fonts.

Я просто давно уже не пользуюсь встроенным и даже не пытаюсь там что-то делать. Сразу внешний и погнал

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


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

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

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

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

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

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

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

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

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

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