2012-03-23 3 views
0

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

Я пришел в вопросы, однако с маршрутизацией:

Ошибка: [fail_to_route]: маршрутизатор выходит из строя. Шорты = 1430. Открытые сети = 0.

Есть ли какие-либо уловки, которые могут помочь в маршрутизации этого проекта? Я действительно неопытен с HDL, и, возможно, я сделал что-то глупое, что вызывает это?

я получаю еще одно предупреждение, которое может быть что-то делать с ним:

Внимание: Следующие сети были назначены глобальные места квадранта и способствуют высокой степени использования логики в их квадранта: CLK_c (Адрес: UPPER_LEFT) Такие высокоуровневые назначения могут иногда приводить к увеличению перегруженности маршрутизации.

Я думаю, что я прав, говоря, что возможность инкрементной маршрутизации/нескольких проходов может помочь этому? но 1430 шортов, вероятно, слишком много для этого, чтобы помочь?

Любые идеи/советы будут очень apreciated,

С уважением, Майк

добавил: Каковы наиболее распространенные ошибки для новичков? Я не могу не чувствовать, что я могу страдать от результатов одного, а использование CORE моего дизайна - всего 53%, и я не могу маршрутизировать.

ответ

1

Было бы полезно указать средства, которые вы используете, и часть, на которую вы нацеливаетесь.

В целом успешная маршрутизация - это успешное соединение всех логических объектов, которые необходимо подключить для реализации вашего проекта. ПЛК, включая ПЛИС, имеют ограниченное количество физических ресурсов для маршрутизации ваших сигналов. Когда у вас заканчиваются ресурсы для маршрутизации, маршрутизация завершается неудачно.

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

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

+0

Спасибо за ответ, я использую MicroSemi Libero, а целевое устройство - Igloo AGL600V2. Все скомпилировано легко, прежде чем я добавил компонент DES encrytion; это значит, что маршрутизация не удалась. Теперь тревожно, Я заменил DES простым XOR, который я написал, и все же я не могу проложить дизайн ... – TheEngineerer

1

Я не знаком с вашей toolchain или устройством, но поскольку у вас, по-видимому, есть тактовый сигнал, способствующий высокому логическому использованию, может быть, он маршрутизирован как обычный логический сигнал и не использует выделенную тактовую линию?

У вас есть только ограниченное количество линий часов (по крайней мере, на устройствах Xilinx, с которыми я обычно работаю), поэтому, если вы использовали их все, маршрутизатор может попытаться просто использовать стандартные логические линии - хотя вам, вероятно, следует получите хотя бы предупреждение об этом.

Один из способов, с помощью которого можно использовать линию часов, состоит в том, чтобы запускать все на одних и тех же (быстрых) часах (если это возможно), а затем использовать часы, позволяющие в отдельных синхронизированных процессах создавать медленные запущенные процессы, когда это необходимо. В мои ранние дни FPGA я не знал об этом и часто создавал многочисленные производные часы в логике, что также является Bad Thing по другим причинам, чем использование часов в часах.