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

Снова про констрейны

Снова возникли проблемы с времянками. До последнего момента Ниос работал на 75 МГц, но после добавления в систему SRAM, CFI и еще кое чего по мелочи, при компиляции ругается -

 

Type : Clock Setup: 'altpll0:inst1|altpll:altpll_component|altpll_5pj2:auto_generated|clk[0]'

Slack : -0.802 ns

Required Time : 75.00 MHz ( period = 13.333 ns )

Actual Time : 70.75 MHz ( period = 14.135 ns )

From : nios_test1:sopc_system_inst|cpu_0:the_cpu_0|A_mem_baddr[27]

To : nios_test1:sopc_system_inst|onchip_memory2_0:the_onchip_memory2_0|altsyncram:the

_altsyncram|altsyncram_2bc1:auto_generated|ram_block1a149~porta_we_reg

 

From Clock : altpll0:inst1|altpll:altpll_component|altpll_5pj2:auto_generated|clk[0]

To Clock : altpll0:inst1|altpll:altpll_component|altpll_5pj2:auto_generated|clk[0]

Failed Paths : 2205

 

 

Пока в SDC файле присустствует только это (это только то, что касается тактовой, )

 

create_clock -period 20.00 -name clk_50 [ get_ports clk_50 ]

create_clock -period 8.00 -name clk_125 [ get_ports clk_125 ]

 

# Deriving PLL Clocks

derive_pll_clocks

 

# Providing easier to use clock names

#set System_Clock {enet_pll_inst|altpll_component|auto_generated|pll1|clk[0]}

set clk_75 {inst1|altpll_component|auto_generated|pll1|clk[0]}

set clk1_125 {inst1|altpll_component|auto_generated|pll1|clk[1]}

set clk2_125 {inst1|altpll_component|auto_generated|pll1|clk[2]}

 

Пока пользовался SDC файлом любезно предоставленным vadimuzzz, но в нем нет констрейнов для тактовой процессора.

 

Читал "Таймквест для чайников", пытался сделать констрейны по аналогии, но видимо неудачно.

 

PLL в моей системе является внешней для СОПЦа. На входе PLL clk_50, выход clk_75 завожу на клок Ниоса

 

Прошу помощи у специалистов.

 

 

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


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

это:

create_clock -period 20.00 -name clk_50  [ get_ports clk_50  ]

+ это:

derive_pll_clocks

задают все клоки, в т.ч. тактовую для процессора.

картина далека от ясности, но есть подозрение, что много всего навешали (особенно SRAM и CFI большой разрядности), а бриджами как следует не развязали, вот тактовая и просела. картинку из билдера покажите, еще можно html файлик с названием системы, что билдер генерит, там хорошее summary.

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


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

SRAM 32 разрядов

CFI 16 разрядов

 

 

image-4229_4CFFAAA2.jpg

nios_test1.html

Изменено пользователем карамболь

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


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

да, вроде похоже на то, о чем я говорил. тогда курите 4-й том квартус хендбука, глава 11 про

Avalon-MM Pipeline Bridge. он определенно должен помочь поднять тактовую ценой увеличения латентности,

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

периферию типа UART, PIO (на них одного моста хватит). а вот с памятью надо разные варианты

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

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


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

спасибо.

У меня еще такая проблема с платой Altera Cyclon III DevBoard, постоянно приходится передергивать JTAG, иначе он отваливается и невозможно записать SOF в FPGA, регулярно при перетыкании вылезает сообщение, что обнаружено неизвестное устройство и с ним какие то проблемы. Это виндовские глюки ? Известно как с этим бороться ? Иногда SOF грузится нормально, но происходят проблемы при загрузке софта для Ниоса

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


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

развязал периферию (rs232, timer, PIO) через pipeline bridge, также добавил отдельный tristate bridge для флешки, пересобрал систему - Fmax не увеличилась. Что еще можно предпринять ?

nios_test1.html

Изменено пользователем карамболь

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


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

ну, самая жирная шина у SRAM, отрежьте ее мостом (pipeline). потом FLASH и т.д. следите не только за Fmax (она по наихудшему сигналу измеряется), но и за количеством сигналов, не уложившихся в констрейны. в общем, поиграйтесь с мостами (можно тупо систему только проц + SRAM взять, замерить Fmax, добавить мост, замерить с ним).

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


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

ну, самая жирная шина у SRAM, отрежьте ее мостом (pipeline). потом FLASH и т.д. следите не только за Fmax (она по наихудшему сигналу измеряется), но и за количеством сигналов, не уложившихся в констрейны. в общем, поиграйтесь с мостами (можно тупо систему только проц + SRAM взять, замерить Fmax, добавить мост, замерить с ним).

 

простите, не совсем понял. Нужно поставить pipeline бридж между ЦПУ и Tristate бриджем SRAM (у меня в данный момент 2 Tristate бриджа, отдельно для SRAM и флешки)?

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


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

простите, не совсем понял. Нужно поставить pipeline бридж между ЦПУ и Tristate бриджем SRAM (у меня в данный момент 2 Tristate бриджа, отдельно для SRAM и флешки)?

да, м.б. получится одним обойтись, но надо пробовать разные варианты. смысла в 2 tristate мостах нет, там регистрятся только входы.

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


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

установка pipeline бриджа позволила увеличить частоту на 10 МГц, т.е. в требуемые 75 МГЦ я вписался, но хочется большего, тем более, что у многих

Ниос на 120 МГц работает.

Тут еще такая бяка вылезла -

Type : Clock Setup: 'altpll0:inst1|altpll:altpll_component|altpll_5pj2:auto_generated|clk[2]'

 

Slack : -2.737 ns

 

Required Time : 125.00 MHz ( period = 8.000 ns )

 

Actual Time : N/A

 

From : nios_test1:sopc_system_inst|triple_speed_ethernet_0:the_triple_speed_ethernet_0|

altera_tse_mac:altera_tse_mac_inst|altera_tse_top_gen_host:top_gen_host_inst|alte

ra_tse_mac_control:U_MAC_CONTROL|altera_tse_register_map:U_REG|command_config[9]

 

To : nios_test1:sopc_system_inst|triple_speed_ethernet_0:the_triple_speed_ethernet_0|

altera_tse_mac:altera_tse_mac_inst|altera_tse_top_gen_host:top_gen_host_inst|alte

ra_tse_top_w_fifo_10_100_1000:U_MAC_TOP|altera_tse_top_w_fifo:U_MAC|altera_tse_to

p_1geth:U_GETH|altera_tse_mac_tx:U_TX|rd_3[3]

 

From Clock : clk_50

 

To Clock : altpll0:inst1|altpll:altpll_component|altpll_5pj2:auto_generated|clk[2]

 

Failed Paths : 90

 

 

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

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


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

по поводу Fmax - я никогда не гоняюсь за тактовой, прирост производительности от ее увеличения небольшой, на

FPGA есть другие пути. 120МГц - это для простенькой системы с памятью DDR, при этом сильно не факт, что она реально

быстрее, скажем, системы из SRAM и ниос на 75МГц (сравнение теплого с мягким в общем-то). и в любом случае, имейте в

виду, что увеличение Fmax идет за счет латентности, так что на произвольном доступе идет даже потеря в скорости.

задайте другой критерий, на всю систему в целом. например, пропускная способность TCP/IP - хороший критерий, и для

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

например (делал недавно), система на 85МГц (неточно, м.б. и меньше) без особого

напряга и оптимизаций "прокачивала" по UDP ~600Мбит.

 

что касается клоков, то забейте их как false path, т.к. в MAC`е стоят двухклоковые FIFO в обе стороны,

анализировать их не надо.

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


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

большое спасибо. Хочу добавить, что SRAM SRAMу рознь, на альтеровской плате стоит память на 70 нсек, с такой большой производительности не добиться.

А флешка у меня вообще не работает, 100 раз уже все сигналы проверил, все вроде правильно, но не работает, даже LED Flash Active не мигает, SRAM запустилась с полпинка, куда копать ума не приложу. Еще вопрос по поводу паралельной загрузки, насколько я понял у каждой ПЛИС есть определенный набор ног для подключения CFI, нашел в сети документ ep3c120.xls (Pin Information for the Cyclone® III EP3C120 Device), но информация по ножкам в этом документе не стреляет с разводкой на плате Altera Cyclon III DevBoard ? Не подскажите как называется дока, в которой описано куда цеплять загрузочную CFI Flash, я планирую хранить в ней прошивку для FPGA и грузить с нее софт Ниоса в он-чип память.

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


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

ну, в доках на борду посмотрите, там есть схематик. еще там есть qsf-файлик с распиновкой, добавляете его

в qsf проекта (

source cycloneIII_3c120_dev_golden_top.qsf

) и все (только ноги должны называться как в qsf). приложил в аттач.

 

вообще, для вашей платы есть хорошие примеры. вот, например: http://nioswiki.com/ExampleDesigns/Nios_II..._Design_Example

cycloneIII_3c120_dev_golden_top.qsf.rar

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


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

за совет спасибо, правда все не так просто оказалось -

мало добавить - source cycloneIII_3c120_dev_golden_top.qsf

 

нужно еще править сам файл cycloneIII_3c120_dev_golden_top.qsf

 

пришлось вставить в строке - set_global_assignment -name TOP_LEVEL_ENTITY golden_top

название своего TOP_LEVEL_ENTITY и еще удалить строки -

set_global_assignment -name VERILOG_FILE golden_top.v

set_global_assignment -name TEXT_FILE backup.txt

 

зато все пины автоматом определились )

 

Но все же вопрос распиновки флешки остался открытым, что если я решу в своем железе использовать другую FPGA, в какой доке брать распиновку для CFI или EPCS ?

 

 

 

 

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


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

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

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

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

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

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

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

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

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

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