Jump to content

    

en-valb

Участник
  • Content Count

    71
  • Joined

  • Last visited

Community Reputation

0 Обычный

About en-valb

  • Rank
    Участник

Информация

  • Город
    Екатеринбург

Recent Profile Visitors

1100 profile views
  1. Да как то предложение странно построено, долго переводил да только примерный смысл удалось извлечь, не был уверен, что правильно его понял. Благодарю за помощь!
  2. Выкладываю скомпилированный проект с окончательным sdc. Хотел бы подвести итоги по данной теме. Прошу проверить все ли я учел в sdc, так и не понял нужно ли с этим, что то делать, или не обращать внимания как и на сигналы интерфейса JTAG. Благодарю всех откликнувшихся, особенно Yuri124, много чего для меня прояснилось в части временного анализа. test_sdram.qar
  3. Пододвинул фазу по clk1 еще немного, получилось +155 deg все стало лучше некуда. Сделал порт SDRAM_CLK клоком create_generated_clock -name SDRAM_CLK -source [get_pins {inst|altpll|sd1|pll7|clk[1]}] [get_ports {SDRAM_CLK}] и затактировал все set_input_delay и set_output_delay от этого клока, т.е. заменил [get_pins {inst|altpll|sd1|pll7|clk[1]}] на [get_clocks {SDRAM_CLK}] во всех set_input_delay -max -clock [get_clocks {SDRAM_CLK}] [expr $SDRAM_CLK_delay_max + $tAC +... set_input_delay -min -clock [get_clocks {SDRAM_CLK}] [expr $SDRAM_CLK_delay_min + $tOH + ... set_output_delay -max -clock [get_clocks {SDRAM_CLK}] [expr $SDRAM_CLK_delay_max + $tSU + ... set_output_delay -min -clock [get_clocks {SDRAM_CLK}] [expr $SDRAM_CLK_delay_min + $tH + ... порт SDRAM_CLK теперь стал клоком, но снова слаки (во вложении), видимо из-за задержки на пути от clk1 до SDRAM_CLK, скрутил фазу clk1 обратно на 110 deg в итоге на pll по clk1 получился сдвиг фазы +45 deg все стало ок, но почему SDRAM_CLK все еще в Unconstrined Output Ports? Снова слаки.bmp
  4. Сейчас читаю Clock Setup and Hold Slack Analysis Explained. Не могу понять предложение: "The Data Required Time is defined as the time the data can take to get to the destination register (reg2) just in time to meet the clock setup time at the destination register,"
  5. Но мне кажется, что здесь, что то не то? Он должен анализировать от первого Latch`a в право, а он от второго в лево. От второго понятно почему, но почему он все время в лево. Как ему сказать что бы брал от Latch`a Data Required с права а не слева. Т.е. у меня Data Required запаздывает почти на такт, и я его сдвигом фазы пододвинул больше чем на такт, таким образом избавился от слаков, но какой то способ странный мне кажется.
  6. Добавил set_multicycle_path слаки уменьшились, наихудшее значение стало -0,557 нс, добавил сдвиг фазы еще на 22,5 deg и того получилось +52,5 deg. Откомпилировал получил слаки -1,542 нс, увеличил сдвиг фазы до +108 deg слаки исчезли полностью, но запас по SDRAM_BA[0] маловат будет, попробую подвинуть еще немного. clk1 +108 deg.bmp BA[0].bmp
  7. set_multicycle_path -end -from {get_clocks {inst|altpll|sd1|pll7|clk[0]}} -to {get_clocks {inst|altpll|sd1|pll7|clk[1]}} -setup 2
  8. Вот тоже - долго думал над Вашей диаграммой. Физический смысл этого раздела понятен, но минусовые числа в столбце Incr (Инкремент) - непонятны. Или это из-за какой-то ошибки в sdc - выглядит так, как будто идет путь не "вперед" от точки возникновения клока, а "назад"... Да я думаю, что он анализирует предыдущие данные, а Latch берет текущий.
  9. После того как я попытался добавить в sdc create_generated_clock для SDRAM_CLK, TimeQuest высыпал слаками. Судя по диаграмме когда я передвинул Latch на +30 deg (0,833 нс) это было не правильно, странно конечно, что я не увидел слаков тогда. Снова слаки.bmp
  10. Забыл обновленный sdc вложить. test_sdram.out.sdc В нем пока нет create_generated_clock для SDRAM_CLK
  11. Обконстрейнил все, что можно, появились вопросы: 1. Что делать с tdi, tms и tdo? 2. Что делать с SDRAM_CLK это ведь по сути clk1 в проекте, может сгенерировать клок SDRAM_CLK из clk1 с помощью create_generated_clock и переписать все констрейны set_input_delay и set_output_delay заменив {inst|altpll|sd1|pll7|clk[1]} на SDRAM_CLK? 3. Еще он пишет, что необконстрейнин один клок. Но ведь это же не клок, на просторах интернета есть где то информация, что это quartus ошибается и в следующих версиях Quartus баг будет исправлен. Что с ним делать сейчас, погасить через set_false_path или как то по другому????
  12. Сработало, в PLL на clk1 изменил сдвиг фазы вместо -60 deg поставил +30 deg (0,833 нс) перекомпилировал слаки исчезли!!! Буду дальше разбираться с set_input_delay и set_output_delay
  13. Убрал из sdc set_clock_groups. Скомпилировал. Для анализа выбрал первый слак SDRAM_WE. Во вложении диаграмма слака из TimeQuest. На вкладке Data Path с Data Arrival Path разобрался у Дениса это хорошо расписано, но вот с Data Required Path темный лес могу предположить что -5,134 это задержка клока Latch (clk1), и она все портит, т.е. мне необходимо поставить Latch слева от слака, левее Output Delay? SDRAM_WE.bmp
  14. TimeQuest считает временные соотношения между сигналами при передаче данных reg1 -> reg2. Соответственно, launch - тот клок, по которому данные записываются в reg1, а latch - по которому записываются в reg2. В моем случае reg1 это выходной регистр контроллера SDRAM, а reg2 это входной регистр во внешней микросхеме памяти, я правильно понял?