2016-09-27 16 views
1

Я получил проект verilog с ключевым компонентом, в котором он зашифрован.Как записать синхронизацию SDC зашифровать зашифрованный код Verilog?

Производительность на FPGA варьируется в зависимости от среды сборки и конфигурации [Примечание 1], и я подозреваю, что это вызвано недостаточными временными ограничениями [Примечание 2].

В анализаторе времени TimeQuest я могу видеть имена контактов, сетей, регистров, портов в зашифрованном ядре, но, не глядя на фактический код, я не знаю точно, что они означают.

Итак, как мне начать писать ограничение синхронизации SDC в этой ситуации?


Примечание 1:

Компонент является MIPI-CSI2 TX. На тестовой стороне RX я постоянно получаю ошибку SoT (ошибка SoT и синхронизация не достигнуты), а иногда и ошибки ECC.

Некоторое время, чтобы заставить его «работать» с FPGA, код должен быть построен на Windows-машине. Затем в код вводятся несколько незначительных и несвязанных изменений, они могут работать, если они построены на машине Linux. В последнее время машина для сборки Linux работает лучше, чем машина Windows.

Также изменение параметров оптимизации, по-видимому, очень сильно нарушает код. Например. в настоящее время работает только режим «Сбалансированный». Режимы «Производительность» и «Агрессивная производительность», которые должны повысить производительность, вызывают много ошибок в принимаемых сигналах. Содержимое памяти блока обработки восходящего потока также влияет на MIPI-CSI2 TX таким образом.

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


Примечание 2:

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

ответ

1

В общем, существует два типа ограничений, с которыми я обычно сталкиваюсь. Один из них - ограничения IO, которые в случае выхода сигналов с микросхемы требуют контроля взаимосвязи между данными и часами, которые используются для передачи данных, и, конечно, часы приема и данные приема. Второй тип - ограничение часов. Вы хотите подтвердить, что сами часы указаны правильно. В зависимости от инструмента, как только вы это сделали, обычно возникает процесс получения часов, которые возникают для получения любых производных часов PLL ... эта часть может быть автоматической или если она похожа на Altera, вам просто нужно вызвать derive_clocks и вы на своем пути.

Конечно, существуют другие виды ограничений, но большинство из них предназначены для указания исключений. «Сделайте это многоцикловым или ложным путем ..» и т. Д. Это, вероятно, не то, что вы хотите здесь. Ограничьте часы, и это должно быть довольно жестким.

Если это проблема ограничения ввода/вывода, вы можете изменить соотношение между часами RX и TX и связанными данными.

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

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

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

И, наконец, проверьте стандартную и конечную спецификации сигнализации ввода-вывода. Если вы считаете, что целостность сигнала здесь играет здесь, то это нужно будет рассмотреть. Убедитесь, что вы используете LVDS или CML, когда вы должны использовать HSSL, или вам может потребоваться добавить подтяжки к сигнальным контактам ... и т. Д.

+0

Я предполагаю, что использовал неправильный язык («недостаточное ограничение времени»), в то время как я действительно имел в виду «неполное ограничение времени». В моем случае мое ядро ​​TX зашифровано, но файл ограничения времени верхнего уровня не имеет никаких ограничений для него. Я мог ошибаться, но я не думаю, что это вообще сдерживается. Я читал AN433 Альтера. Но мне кажется, что мне нужно знать точный узел, на который часы подают выход, чтобы указать минимальную задержку выхода. – user3528438

+0

Итак, Altera Quartus продолжайте так. Если вы можете открыть проект в графическом интерфейсе, а затем использовать TimeQuest. В меню «Задачи» вам необходимо установить рабочее состояние. Не имеет значения, какая температура, просто выберите один. Есть несколько способов сделать это, но вы получите идею, запустите задачу Datasheet отчета. Затем в отчете вы увидите список отчетов в разделе «Минимальные часы» для вывода выводов. Внутри вы увидите список выходов и связанную с ними привязку часов. Надеюсь, это поможет. –