карамболь 0 8 декабря, 2010 Опубликовано 8 декабря, 2010 · Жалоба Снова возникли проблемы с времянками. До последнего момента Ниос работал на 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 завожу на клок Ниоса Прошу помощи у специалистов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 8 декабря, 2010 Опубликовано 8 декабря, 2010 · Жалоба это: create_clock -period 20.00 -name clk_50 [ get_ports clk_50 ] + это: derive_pll_clocks задают все клоки, в т.ч. тактовую для процессора. картина далека от ясности, но есть подозрение, что много всего навешали (особенно SRAM и CFI большой разрядности), а бриджами как следует не развязали, вот тактовая и просела. картинку из билдера покажите, еще можно html файлик с названием системы, что билдер генерит, там хорошее summary. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карамболь 0 8 декабря, 2010 Опубликовано 8 декабря, 2010 (изменено) · Жалоба SRAM 32 разрядов CFI 16 разрядов nios_test1.html Изменено 8 декабря, 2010 пользователем карамболь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 · Жалоба да, вроде похоже на то, о чем я говорил. тогда курите 4-й том квартус хендбука, глава 11 про Avalon-MM Pipeline Bridge. он определенно должен помочь поднять тактовую ценой увеличения латентности, проблема только в том, что решение не единственное. что точно стоит сделать - отрезать таким мостом периферию типа UART, PIO (на них одного моста хватит). а вот с памятью надо разные варианты попробовать, с разным количеством мостов, поиграть с топологией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карамболь 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 · Жалоба спасибо. У меня еще такая проблема с платой Altera Cyclon III DevBoard, постоянно приходится передергивать JTAG, иначе он отваливается и невозможно записать SOF в FPGA, регулярно при перетыкании вылезает сообщение, что обнаружено неизвестное устройство и с ним какие то проблемы. Это виндовские глюки ? Известно как с этим бороться ? Иногда SOF грузится нормально, но происходят проблемы при загрузке софта для Ниоса Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 · Жалоба может кабель или разъемы хреновые, посмотрите сигналы осциллографом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карамболь 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 (изменено) · Жалоба развязал периферию (rs232, timer, PIO) через pipeline bridge, также добавил отдельный tristate bridge для флешки, пересобрал систему - Fmax не увеличилась. Что еще можно предпринять ? nios_test1.html Изменено 9 декабря, 2010 пользователем карамболь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 · Жалоба ну, самая жирная шина у SRAM, отрежьте ее мостом (pipeline). потом FLASH и т.д. следите не только за Fmax (она по наихудшему сигналу измеряется), но и за количеством сигналов, не уложившихся в констрейны. в общем, поиграйтесь с мостами (можно тупо систему только проц + SRAM взять, замерить Fmax, добавить мост, замерить с ним). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карамболь 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 · Жалоба ну, самая жирная шина у SRAM, отрежьте ее мостом (pipeline). потом FLASH и т.д. следите не только за Fmax (она по наихудшему сигналу измеряется), но и за количеством сигналов, не уложившихся в констрейны. в общем, поиграйтесь с мостами (можно тупо систему только проц + SRAM взять, замерить Fmax, добавить мост, замерить с ним). простите, не совсем понял. Нужно поставить pipeline бридж между ЦПУ и Tristate бриджем SRAM (у меня в данный момент 2 Tristate бриджа, отдельно для SRAM и флешки)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 · Жалоба простите, не совсем понял. Нужно поставить pipeline бридж между ЦПУ и Tristate бриджем SRAM (у меня в данный момент 2 Tristate бриджа, отдельно для SRAM и флешки)? да, м.б. получится одним обойтись, но надо пробовать разные варианты. смысла в 2 tristate мостах нет, там регистрятся только входы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карамболь 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 · Жалоба установка 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 МГц, от которых тактируется передатчик МАС гигабитный, при это он работает, ставил заглушку, чего передаю, то и принимаю, ошибок не обнаружил, но боюсь на предельных температурах могу поиметь с этими слаками неприятности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 · Жалоба по поводу Fmax - я никогда не гоняюсь за тактовой, прирост производительности от ее увеличения небольшой, на FPGA есть другие пути. 120МГц - это для простенькой системы с памятью DDR, при этом сильно не факт, что она реально быстрее, скажем, системы из SRAM и ниос на 75МГц (сравнение теплого с мягким в общем-то). и в любом случае, имейте в виду, что увеличение Fmax идет за счет латентности, так что на произвольном доступе идет даже потеря в скорости. задайте другой критерий, на всю систему в целом. например, пропускная способность TCP/IP - хороший критерий, и для увеличения ее не надо гнать частоту (вернее, можно, но есть и другие способы). например (делал недавно), система на 85МГц (неточно, м.б. и меньше) без особого напряга и оптимизаций "прокачивала" по UDP ~600Мбит. что касается клоков, то забейте их как false path, т.к. в MAC`е стоят двухклоковые FIFO в обе стороны, анализировать их не надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карамболь 0 9 декабря, 2010 Опубликовано 9 декабря, 2010 · Жалоба большое спасибо. Хочу добавить, что 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 и грузить с нее софт Ниоса в он-чип память. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 10 декабря, 2010 Опубликовано 10 декабря, 2010 · Жалоба ну, в доках на борду посмотрите, там есть схематик. еще там есть 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карамболь 0 10 декабря, 2010 Опубликовано 10 декабря, 2010 · Жалоба за совет спасибо, правда все не так просто оказалось - мало добавить - 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 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться