|
Снова про констрейны, увеличение тактовой для Ниоса |
|
|
|
Dec 8 2010, 13:15
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
Снова возникли проблемы с времянками. До последнего момента Ниос работал на 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 завожу на клок Ниоса
Прошу помощи у специалистов.
|
|
|
|
|
Dec 8 2010, 15:38
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
это: Код create_clock -period 20.00 -name clk_50 [ get_ports clk_50 ] + это: Код derive_pll_clocks задают все клоки, в т.ч. тактовую для процессора. картина далека от ясности, но есть подозрение, что много всего навешали (особенно SRAM и CFI большой разрядности), а бриджами как следует не развязали, вот тактовая и просела. картинку из билдера покажите, еще можно html файлик с названием системы, что билдер генерит, там хорошее summary.
|
|
|
|
|
Dec 8 2010, 16:04
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
SRAM 32 разрядов CFI 16 разрядов
Сообщение отредактировал карамболь - Dec 8 2010, 16:05
|
|
|
|
|
Dec 9 2010, 10:55
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
развязал периферию (rs232, timer, PIO) через pipeline bridge, также добавил отдельный tristate bridge для флешки, пересобрал систему - Fmax не увеличилась. Что еще можно предпринять ?
Сообщение отредактировал карамболь - Dec 9 2010, 10:57
|
|
|
|
|
Dec 9 2010, 13:34
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
Цитата(vadimuzzz @ Dec 9 2010, 16:22)  ну, самая жирная шина у SRAM, отрежьте ее мостом (pipeline). потом FLASH и т.д. следите не только за Fmax (она по наихудшему сигналу измеряется), но и за количеством сигналов, не уложившихся в констрейны. в общем, поиграйтесь с мостами (можно тупо систему только проц + SRAM взять, замерить Fmax, добавить мост, замерить с ним). простите, не совсем понял. Нужно поставить pipeline бридж между ЦПУ и Tristate бриджем SRAM (у меня в данный момент 2 Tristate бриджа, отдельно для SRAM и флешки)?
|
|
|
|
|
Dec 9 2010, 15:04
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
установка 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 МГц, от которых тактируется передатчик МАС гигабитный, при это он работает, ставил заглушку, чего передаю, то и принимаю, ошибок не обнаружил, но боюсь на предельных температурах могу поиметь с этими слаками неприятности.
|
|
|
|
|
Dec 9 2010, 15:42
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
по поводу Fmax - я никогда не гоняюсь за тактовой, прирост производительности от ее увеличения небольшой, на FPGA есть другие пути. 120МГц - это для простенькой системы с памятью DDR, при этом сильно не факт, что она реально быстрее, скажем, системы из SRAM и ниос на 75МГц (сравнение теплого с мягким в общем-то). и в любом случае, имейте в виду, что увеличение Fmax идет за счет латентности, так что на произвольном доступе идет даже потеря в скорости. задайте другой критерий, на всю систему в целом. например, пропускная способность TCP/IP - хороший критерий, и для увеличения ее не надо гнать частоту (вернее, можно, но есть и другие способы). например (делал недавно), система на 85МГц (неточно, м.б. и меньше) без особого напряга и оптимизаций "прокачивала" по UDP ~600Мбит.
что касается клоков, то забейте их как false path, т.к. в MAC`е стоят двухклоковые FIFO в обе стороны, анализировать их не надо.
|
|
|
|
|
Dec 9 2010, 16:14
|
Частый гость
 
Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813

|
большое спасибо. Хочу добавить, что 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 и грузить с нее софт Ниоса в он-чип память.
|
|
|
|
|
Dec 10 2010, 01:59
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
ну, в доках на борду посмотрите, там есть схематик. еще там есть qsf-файлик с распиновкой, добавляете его в qsf проекта ( Код source cycloneIII_3c120_dev_golden_top.qsf ) и все (только ноги должны называться как в qsf). приложил в аттач. вообще, для вашей платы есть хорошие примеры. вот, например: http://nioswiki.com/ExampleDesigns/Nios_II..._Design_Example
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|