SM 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба Latch With Positive Gate Verilog Coding Example .... Я очень уважительно отношусь к синтезатору альтеры то есть к квартусу. Если откомпилить данный файл в нем, то увидим, что там именно мультиплексор Латч это и есть мультиплексор, выход которого закольцован на один из его же входов. Избавьтесь от них всех! Для этого надо или явно описывать все пути if/case, или указывать "/* synthesis full_case parallel_case */" для case мульиплексора, если лень default писать. Это принципиально важно, так как такой мультиплексор, из которого получился латч, анализируется как триггер с клоком, а не как мультиплексор, что приведет к плохим последствиям. ЗЫ. сорри, оказывается латчи уже устранили... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба Те 4 клока-на них можно не обращать внимания-потом исправлю главное не забыть. в отчете есть такие строки Timing constraint: Default period analysis for Clock 'BusRxClock_p' Clock period: 13.559ns (frequency: 73.749MHz) Timing constraint: Default period analysis for Clock 'Phy0RxClk' Clock period: 13.007ns (frequency: 76.879MHz) на первой странице топика # Time constraints NET "BusRxClock_n" TNM_NET = BusRxClock_n; TIMESPEC TS_BusRxClock_n = PERIOD "BusRxClock_n" 8 ns HIGH 50%; NET "BusRxClock_p" TNM_NET = BusRxClock_p; TIMESPEC TS_BusRxClock_p = PERIOD "BusRxClock_p" 8 ns HIGH 50%; NET "Phy0RxClk" TNM_NET = Phy0RxClk; TIMESPEC TS_Phy0RxClk = PERIOD "Phy0RxClk" 8 ns HIGH 50%; ничего что вы не проходите по времянкам ? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба Ну по клокам все выполнено. Теперь следующий вопрос - где констрейны, описывающие окружение ПЛИСы, а именно допустимые времянки для работы с внешними устройствами, как синхронными, так и асинхронными (у вас там SRAM? Ее тоже надо обконстрейнить, чтобы все сигналы гарантировано вовремя приходили). Надо описать допустимые "pad to setup", "clock to pad" (в терминологии ксилинкса) для сигналов данных и управления. ничего что вы не проходите по времянкам ? :) наверное спецификацию изменили :) Иначе бы оно материлось в лог :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба Ну по клокам все выполнено. Теперь следующий вопрос - где констрейны, описывающие окружение ПЛИСы, а именно допустимые времянки для работы с внешними устройствами, как синхронными, так и асинхронными (у вас там SRAM? Ее тоже надо обконстрейнить, чтобы все сигналы гарантировано вовремя приходили). Надо описать допустимые "pad to setup", "clock to pad" (в терминологии ксилинкса) для сигналов данных и управления. наверное спецификацию изменили :) Иначе бы оно материлось в лог :) Я в курсе этого. Просто не всегда синтезатор указывает правильные числа. Он не учитывает такие вещи, что некоторые логические сравнения подготавливаются за пару тактов раньше а по поводу извне там все на примитивах - и все пучком. Проблема внутри. Я понимаю что задержки стали соизмеримыми с периодом клока. Вопрос то как раз в том, можно ли с этим бороться некоторыми констрейнами Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба Я в курсе этого. Просто не всегда синтезатор указывает правильные числа. Он не учитывает такие вещи, что некоторые логические сравнения подготавливаются за пару тактов раньше Вот тут ИМХО собака и порылась.Если мне память не изменяет ISE в отчете пишет только самый критичный путь, за ним могут быть замаскированы нужные вам. Тогда выкатывайте полный STA, с указанием всех путей по которым валяться констрейны или описывайте все мультициклы для корректного анализа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба Вот тут ИМХО собака и порылась.Если мне память не изменяет ISE в отчете пишет только самый критичный путь, за ним могут быть замаскированы нужные вам. Тогда выкатывайте полный STA, с указанием всех путей по которым валяться констрейны или описывайте все мультициклы для корректного анализа. Может помогут timegoup или чето похожее на волшебную кнопку "чтоб все работало". Сейчас я добился по приему все работало (по всем 4-м каналам), обрабатывалосьб писалось в QDRII SRAM, считывалось с него и передавалось в другой фпга. Все это наблюдаю в чипскопе. Вот по передаче в обратную сторону чето не то. И это учитывая то что он указывает: Timing constraint: Default period analysis for Clock 'Phy0RxClk' Clock period: 13.007ns (frequency: 76.879MHz) А у меня они все 125 в данный момент. Также вспомнился модуль с приличной логикой, для которого он указал эту частоту в районе 700 МГц :) И еще если в модуль подается 125 МГц и клок енабле раз в 4 такта (идет на все триггеры), то для таких модулей F max и не надо 125. А таких модулей у меня достаточно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба И еще если в модуль подается 125 МГц и клок енабле раз в 4 такта (идет на все триггеры), то для таких модулей F max и не надо 125. А таких модулей у меня достаточно Ну так и опишите мультицикл, чтобы разводчик не надрывался это утаптывать в 125 МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба Ну так и опишите мультицикл, чтобы разводчик не надрывался это утаптывать в 125 МГц. Можно пример в студию. А пока же я попробую некоторые модули переписать. Ведь в конце то концов констрейны это крайность Ну конечно я не имею ввиду распиновку и указание периодов клока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба А что ISE выдает в отчете "Place & Route report"? Интересны табличка заполнения микросхемы и собственно соблюдения констрейнов. рабочая частота 125 МГц, она же глобальная - это BusRxClock_n/p? Или на рабочие 125 МГц констрейнов не задано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба Ведь в конце то концов констрейны это крайность А вот это основная тактическая ошибка. Констрейны это первоочередное, это основа основ, и их надо грамотно и полно описывать чуть ли не до написания HDL. А не крайность. И исполнение всех констрейнов - гарантия как и работоспособности, так и наиболее правильной оптимизации. Не ставьте их на второй план. Опишите как Вам советуют все мультициклы, все мегагерцы в том виде, в котором они есть. И все заработает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба А вот это основная тактическая ошибка. Констрейны это первоочередное, это основа основ, и их надо грамотно и полно описывать чуть ли не до написания HDL. А не крайность. И исполнение всех констрейнов - гарантия как и работоспособности, так и наиболее правильной оптимизации. Не ставьте их на второй план. Опишите как Вам советуют все мультициклы, все мегагерцы в том виде, в котором они есть. И все заработает. Я уже писал-мегагерцы и распиновка у меня описаны изначально. Связь с внешним миром я делаю на примитивах и в IOB-соответственно констрейны не надо там. А вот по поводу констрейнов внутри, что они обязательны? Если все работает по одному клоку, а клок глобальный - то задержка сигналов всегда будет меньше чем задержка клока. Иначе все бы с опаской использовали сдвиговые регистры. Просто я данную проблему хотел временно констрейнами решить и параллельно переписать 3 модуля (они не такие маленькие-иначе проблемы бы не было), у которых F max немножко ниже чем 125. Кстати попробовал просинтезировать для спартана 6 - частота более чем в 2 раза поднялась... А мне запретили их поставить...а я та хотел, так хотел.... Была и другая причина более серьезная-в моем кристалле всего 8 BUFGMUX. А в плиз приходят 10 разных клоков... Эта проблема конечно решена, но она бы и не возникла в шестом. PS: Плиски были выбраны до меня. Мультициклы мультициклы. Ну дайте уж пример :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба Я уже писал-мегагерцы и распиновка у меня описаны изначально. Связь с внешним миром я делаю на примитивах и в IOB-соответственно констрейны не надо там. А вот по поводу констрейнов внутри, что они обязательны? IOB, примитивы. Это не отменяет констрейнов для наружнего мира. Проверить то, что Вам кажется, что руками сделано правильно, никогда не мешает. По поводу констрейнов внутри - конечно нужно, именно в части мультициклов и false_path между клок-доменов, тактируемых асинхронными кловами и/или где нет важных путей. Мультициклы мультициклы. Ну дайте уж пример :) Блин. Был бы там стандартный SDC - дал бы примеров. А тут... Синтаксис какой-то мне неизвестный. Но в вашем Constraints Guide (или как ее) вроде вполне понятно описано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Victor 0 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба Связь с внешним миром я делаю на примитивах и в IOB-соответственно констрейны не надо там. В этом вы не правы... Их очень нужно описывать, иначе можно даже и не узнать, что не выполнены спецификации... Причем, как на вход, так и на выход. А вот по поводу констрейнов внутри, что они обязательны? Если все работает по одному клоку, а клок глобальный - то задержка сигналов всегда будет меньше чем задержка клока. Иначе все бы с опаской использовали сдвиговые регистры. Внутри, обычно, достаточно описания тактовой. _Но_ если все синхронно и синтезатор/PAR "все" понимают. ЗЫ: Да, согласен с предыдущим оратором, если все однотактово, конечно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба Мультициклы мультициклы. Ну дайте уж пример :) http://electronix.ru/forum/index.php?showtopic=66052&hl= Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба В этом вы не правы... Их очень нужно описывать, иначе можно даже и не узнать, что не выполнены спецификации... Причем, как на вход, так и на выход. как так? если я сам пишу то как я могу не знать выполняю я требуемые спецификации или нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться