Stewart Little
Dec 4 2014, 14:13
Цитата(the_king_orange_summer @ Dec 4 2014, 14:18)

делаю простой проектик на циклон4е. В Qsys использую NIOSIIProc, On-Chip Memory, Jtag UART, PIO, System ID Peripheral. Пользуюсь QuartisII 13.0.
генерится time_limited.sof - и всё. может как вылечить можно?
Самое простое - используйте ниос в варианте economy (для Вашей системы достаточно) - этот вариант не требует лицензирования.
Если хочется лицензию на standard/fast, то пишите в личку.
the_king_orange_summer
Dec 4 2014, 17:38
С временным ограничением решил. Спасибо
Все равно ниос хардвейр не видит соединения с юзерборд где-то что-то не так делаю. Буду дальше копать что не так
Zlodeinik
Dec 13 2014, 09:50
Товарищи, мельком видел информацию о том,что есть ограничения на использование NIOS. Мол только с включенным JTAG работает. мол нельзя POF файлы создавать. правда ли ? ломанный Quartus решает проблему ?
Stewart Little
Dec 13 2014, 13:26
Цитата(Zlodeinik @ Dec 13 2014, 12:50)

Товарищи, мельком видел информацию о том,что есть ограничения на использование NIOS. Мол только с включенным JTAG работает. мол нельзя POF файлы создавать. правда ли ? ломанный Quartus решает проблему ?
Собственно Nios II тут не при чем. То, что Вы описали, называется режимом OpenCore Plus. Он доступен практически для всех лицензируемых IP-ядер Altera. Подробности можно посмотреть в
AN 320: OpenCore Plus Evaluation of MegafunctionsДля того, чтобы использовать IP-ядра без ограничений, нужна соответствующая лицензия. Если "честная", то будет работать в любом квартусе (и ломаном и неломаном). Если "нечестная", то только в ломаном.
Zlodeinik
Dec 14 2014, 16:12
Цитата(Stewart Little @ Dec 13 2014, 14:26)

Собственно Nios II тут не при чем. То, что Вы описали, называется режимом OpenCore Plus. Он доступен практически для всех лицензируемых IP-ядер Altera. Подробности можно посмотреть в
AN 320: OpenCore Plus Evaluation of MegafunctionsДля того, чтобы использовать IP-ядра без ограничений, нужна соответствующая лицензия. Если "честная", то будет работать в любом квартусе (и ломаном и неломаном). Если "нечестная", то только в ломаном.
А что вам известно про Cortex-m1. я видел его в списке IP core altera, было бы приятно им воспользоваться.
Stewart Little
Dec 14 2014, 19:04
Цитата(Zlodeinik @ Dec 14 2014, 19:12)

А что вам известно про Cortex-m1. я видел его в списке IP core altera, было бы приятно им воспользоваться.
1. Это ядро не альтеровское, а фирмы ARM.
2. Требует лицензирования.
3. Заточнено только под Cyclone III.
4. Очень сильно неоптимально с точки зрения ресурсов и быстродействия при реализации в FPGA.
Вывод - не стоит тратить на него время.
Zlodeinik
Dec 14 2014, 23:35
Цитата(Stewart Little @ Dec 14 2014, 20:04)

1. Это ядро не альтеровское, а фирмы ARM.
2. Требует лицензирования.
3. Заточнено только под Cyclone III.
4. Очень сильно неоптимально с точки зрения ресурсов и быстродействия при реализации в FPGA.
Вывод - не стоит тратить на него время.
мне известно, что не альтеровское. хочется с либами на си, чтобы стандартная периферия была и без кучи стороннего софта. niosпоказался приятным в ?том плане,но я сомневаюсь,что его использование одобрят в серийном изделии.
подскажите а включение/выключение "small C library", оптимизации, уменьшения размера драйверов может повлиять на работоспособность приложения?
Может, если вы активно пользуетесь Altera HAL (open(), close() и тд) и функциями типа printf("...%f", (float)blabla). Если пишите достаточно оптимизированно/низкоуровнего, то все ок будет, у самого отключено, вроде норм
WitFed
Dec 26 2014, 13:24
У меня всю жизнь "широта" отключена, как и инитный код С++, который жрёт 30К ни за что.
Скорей всего, вылазят тонкие глюки, которых не было видно в "жирной" версии.
В своем проекте заметил, что наибольшую экономию внесло отключение "small C library", впринципе не особо нужная вещь, хотя без вывода floating point в отладке иногда не очень удобно. Однако заменил штатный принт на принт через UDP в Qt для таких случаев
хммм. у меня наблюдается странная итуация. Я написал свой драйвер к UART и вё работает с оптимизацией O3. с O0 проблема том что статусны регистр UART всегда равен 0 и поэтому я не могу не прочитать, ни записать в порт. в общем странно. Кто нибудь знаете как выйти из этой ситуации?
Грендайзер
Jan 21 2015, 08:21
Здравствуйте. Год назад разбирался с моделированием nios в моделсим, сейчас вот вновь понадобилось, но никак почему то не выходит. Работаю в квартус 11.1. Создаю проект с SOPC билдере, затем в эклипсе. Далее запускаю из эклипса моделсим, S -> всё компилится, вывожу необходимые мне сигналы, но выходной порт своего состояния не изменяет. Такое чувство, будто файл инициализации памяти не подхватывается. В моделсиме появляется предупреждение:
Warning: (vsim-8683) Uninitialized out port /test_bench/DUT/the_LED_s1/cpu_data_master_read_data_valid_LED_s1 has no driver.
# This port will contribute value (U) to the signal network.
Заранее спасибо!
Добрый день.
Простой вопрос, есть параллельный АЦП, как бы попроще сделать так, чтобы N данных с этого АЦП (по клоку с АЦП) улетали в SDRAM память?
пока что курение мануалов на PIO и DMA Controller Core результатов не дало. в какую сторону смотреть?
UPD.
Я правильно понял что надо поставить Avalon-ST Dual Clock FIFO, вытащить из него наружу in_clk и in Streaming Sink(data, ready, valid), а out через "Avalon-ST Bytes to Packets Converter" в sgDMA?
Должно получиться. Для SgDMA ST to MM надо настроить прерывание по завершению записи и обновлять дескриптор. Можете попробовать использовать mSgDMA, это более новое ядро (так же есть режим работы ST to MM).
просто странно что среди периферии нет готового человеческого параллельного порта (вроде как PPI у блэкфинов).
gosu-art
May 8 2015, 02:15
Ставите dual clock fifo. Avalon-ST sink to Avalon-MM read slave. Вытаскиваете Avalon-ST sink из Qsys на "улицу" с нужной разрядностью данных, подаете на sink_valid = adc_data_ready (либо "1" если дынные приходят по каждому такту). далее можно обойтись простым DMA без наворотов. Пришло прерывание от ФИФОшки завели DMA и перекачали все в SDRAM
Цитата(gosu-art @ May 8 2015, 09:15)

Avalon-ST sink to Avalon-MM read slave.
что-то не нашел, Q14.1, ткните пожалуйста пальцем где он есть.
Нажмите для просмотра прикрепленного файла
Спасибо!
Только пришлось два fifo подряд поставить (один ST-ST, второй ST-MM), так как данные 16ти разрядные а вход DMA хочет 32. а преобразователь на ST(16-32) он между ними сам поставил.
или это как-то под другому правильнее делать?
gosu-art
May 8 2015, 14:14
Шина, да - 32 х разрядная на Avalon MM. но просто старшая часть,если не используете, будет заполнятся нулями(холостыми) и памяти (FIFO) кушать не станет. А вот в SDRAM могут писаться эти холостые нули.
Bits per symbol = 16
symbol per beat = 1
заполнение старших 2й байт нулями
либо так
Bits per symbol = 16
symbol per beat = 2
склеивание 2х 16ти разрядных слов(2 отсчета АЦП) в одно 32х разрядное -> в SDRAM x16 , (я как то экспериментировал, но точно не помню. посмотрите в этой же ветке отписывался) будут писаться 2 слова burst'ом в SDRAM
Либо 3й вариант поставить FIFO ST-ST и SG-DMA ST-MM и адаптерами он автоматом все склеит. А раньше нужно было ручками их вставлять
Грендайзер
May 28 2015, 08:01
Здравствуйте. Есть ядро написанное на VHDL (не моё), хочу прикрутить его к Nios II. Среди файлов из которого состоит ядро имеется файл .sdc с временными ограничениями. Надо соответственно этот файл как то так подцепить к проекту, что бы трассировщик правильно для данной частоты развёл не только Nios но и данное ядро. Процессорную систему создаю в SOPC Builder, среди генерируемых им файлов, есть файл cpu.sdc, его содержание:
Код
set cpu cpu:*
set cpu_oci cpu_nios2_oci:the_cpu_nios2_oci
set cpu_oci_break cpu_nios2_oci_break:the_cpu_nios2_oci_break
set cpu_ocimem cpu_nios2_ocimem:the_cpu_nios2_ocimem
set cpu_oci_debug cpu_nios2_oci_debug:the_cpu_nios2_oci_debug
set cpu_wrapper cpu_jtag_debug_module_wrapper:the_cpu_jtag_debug_module_wrapper
set cpu_jtag_tck cpu_jtag_debug_module_tck:the_cpu_jtag_debug_module_tck
set cpu_jtag_sysclk cpu_jtag_debug_module_sysclk:the_cpu_jtag_debug_module_sysclk
set cpu_oci_path [format "%s|%s" $cpu $cpu_oci]
set cpu_oci_break_path [format "%s|%s" $cpu_oci_path $cpu_oci_break]
set cpu_ocimem_path [format "%s|%s" $cpu_oci_path $cpu_ocimem]
set cpu_oci_debug_path [format "%s|%s" $cpu_oci_path $cpu_oci_debug]
set cpu_jtag_tck_path [format "%s|%s|%s" $cpu_oci_path $cpu_wrapper $cpu_jtag_tck]
set cpu_jtag_sysclk_path [format "%s|%s|%s" $cpu_oci_path $cpu_wrapper $cpu_jtag_sysclk]
set cpu_jtag_sr [format "%s|*sr" $cpu_jtag_tck_path]
#**************************************************************
# Set False Paths
#**************************************************************
set_false_path -from [get_keepers *$cpu_oci_break_path|break_readreg*] -to [get_keepers *$cpu_jtag_sr*]
set_false_path -from [get_keepers *$cpu_oci_debug_path|*resetlatch] -to [get_keepers *$cpu_jtag_sr[33]]
set_false_path -from [get_keepers *$cpu_oci_debug_path|monitor_ready] -to [get_keepers *$cpu_jtag_sr[0]]
set_false_path -from [get_keepers *$cpu_oci_debug_path|monitor_error] -to [get_keepers *$cpu_jtag_sr[34]]
set_false_path -from [get_keepers *$cpu_ocimem_path|*MonDReg*] -to [get_keepers *$cpu_jtag_sr*]
set_false_path -from *$cpu_jtag_sr* -to *$cpu_jtag_sysclk_path|*jdo*
set_false_path -from sld_hub:*|irf_reg* -to *$cpu_jtag_sysclk_path|ir*
set_false_path -from sld_hub:*|sld_shadow_jsm:shadow_jsm|state[1] -to *$cpu_oci_debug_path|monitor_go
До этого не обращал внимания, но... где здесь указание на то, какая частота сигнала используется, куда вписать нестабильность частоты (квартус выдаёт критические ворненги относительно того, что нестабильность не задана). Возможно необходимо создавать отдельный .sdc файл. Как я понял, Qsys сама генерит подпбный файл, а как быть с SOPC Builder?
Привет. В Eclipse запускаю NiosII -> BSP Editor, окно BSP появляется, но не загружается до конца. Посоветовали поставить Cygwin, не помогло. Стоит Quartus 13.1. Есть идеи, как запустить?
Нажмите для просмотра прикрепленного файла
triplex
Jul 9 2015, 03:06
Добрый день. Подскажите где можно взять готовый проект с ниосом, в котором настроена работа по DMA?
Цитата(gosu-art @ May 8 2015, 08:15)

Ставите dual clock fifo. Avalon-ST sink to Avalon-MM read slave. Вытаскиваете Avalon-ST sink из Qsys на "улицу" с нужной разрядностью данных, подаете на sink_valid = adc_data_ready (либо "1" если дынные приходят по каждому такту). далее можно обойтись простым DMA без наворотов. Пришло прерывание от ФИФОшки завели DMA и перекачали все в SDRAM
а как простой dma догадается что в FIFO данные не закончились, он же тупо вЫчитает на своей скорости всё что там есть на момент запуска, а потом будет нули читать изредка перемежаемые поступающими данными?
и еще вопрос
Нажмите для просмотра прикрепленного файлапри попытке добавить sgdma, qsys, сам себе противореча, утверждает что ширина данных у sink 8 бит, вне зависимости настроек, так и должно быть?
Цитата(_pv @ Jul 15 2015, 17:39)

а как простой dma догадается что в FIFO данные не закончились, он же тупо вЫчитает на своей скорости всё что там есть на момент запуска, а потом будет нули читать изредка перемежаемые поступающими данными?
и еще вопрос
при попытке добавить sgdma, qsys, сам себе противореча, утверждает что ширина данных у sink 8 бит, вне зависимости настроек, так и должно быть?
1. там же написано, что ваши данные сопровождаются сигналом Valid.
2. дма настроен на работу с 8 битными словами, а фифо - с 32 битными.
PS почитайте, как устроен avalon ST
Цитата(Swup @ Jul 15 2015, 20:01)

1. там же написано, что ваши данные сопровождаются сигналом Valid.
2. дма настроен на работу с 8 битными словами, а фифо - с 32 битными.
PS почитайте, как устроен avalon ST
1. это то что наружу у ST торчит, внуть же - фифо-MM, и то что увидит простой дма (не SGDMA) - это просто адрес памяти, и валидность данных находящихся в фифо - в отдельном статусном регистре, как о нём узнает обычный дма?
2. ширина чего тогда выставлена в 32бита? то что кружками на картинке обведено и слева-снизу в hierarchy: st_sink->st_sink_data[
32].
Цитата(_pv @ Jul 15 2015, 18:18)

1. это то что наружу у ST торчит, внуть же - фифо-MM, и то что увидит простой дма (не SGDMA) - это просто адрес памяти, и валидность данных находящихся в фифо - в отдельном статусном регистре, как о нём узнает обычный дма?
2. ширина чего тогда выставлена в 32бита? то что кружками на картинке обведено и слева-снизу в hierarchy: st_sink->st_sink_data[32].
1. хм. я не занимался ни простым ДМА ни фифо для ММ, но кажется, что когда вы инициируете транзакцию вы должны быть уверены, что есть что качать. т.е. отсутствие достаточного количества данных в фифо - это ошибка системная. Или я не правильно понял вопрос))
2. 32 бита - ширина шины. 8 бит - ширина слова. т.е. по шине передается 4 слова за такт.
Цитата(Swup @ Jul 15 2015, 20:49)

1. хм. я не занимался ни простым ДМА ни фифо для ММ, но кажется, что когда вы инициируете транзакцию вы должны быть уверены, что есть что качать. т.е. отсутствие достаточного количества данных в фифо - это ошибка системная. Или я не правильно понял вопрос))
2. 32 бита - ширина шины. 8 бит - ширина слова. т.е. по шине передается 4 слова за такт.
1. данных снаружи прилетает много, но не достаточно медленно чтобы их руками перекладывать во внешнюю память. если бы размера фифо хватало чтобы вместить все данные вопросов бы не было.
хотя как оказалось чтение пустого фифо вроде бы возвращает не 0, а подвешивает чтение, так что если натравить дма на выход ММ фифо, он от туда прочитает всё правильно.
да и процессор на частоте 50МГц как оказалось 10МГц данные перекладывать вроде успевает. так что первый вопрос пока временно снимается.
2. на картинке кружком обведено st_sink->st_sink_data[32]. то есть если я его например потащу наружу, его ширина будет 32, и именно этот sink он не может соединить с таким же 32х разрядным source у fifo, считая его почему-то 8ми битным.
Цитата(_pv @ Jul 15 2015, 19:36)

2. на картинке кружком обведено st_sink->st_sink_data[32]. то есть если я его например потащу наружу, его ширина будет 32, и именно этот sink он не может соединить с таким же 32х разрядным source у fifo, считая его почему-то 8ми битным.
Ну тут не совсем так, ошибка о размере слов, а не размере шины.
Вообщем вот у вас, как мне кажется, настроено фифо:
Нажмите для просмотра прикрепленного файлаСделайте вот так:
Нажмите для просмотра прикрепленного файлаОбратите внимание. Ширина шины не поменялась и сохранила 32 бита. Поменялся размер слово на 8 бит. SGDMA работает со словами 8 бит. все согласуется и все будет работать)
ПС еще кстати добавился сигнал empty.
triplex
Aug 14 2015, 19:03
скажите, что такое констрейны? нашел в этой теме сообщение, где описываются похожие проблемы и там надо констрейны
doom13
Aug 14 2015, 19:37
Цитата(triplex @ Aug 14 2015, 22:03)

скажите, что такое констрейны? нашел в этой теме сообщение, где описываются похожие проблемы и там надо констрейны
Можете глянуть
тут и
тут.
Golikov A.
Aug 14 2015, 19:37
ограничения, обычно имеется ввиду периоды клоков и время готовности данных
sonycman
Dec 28 2015, 09:45
Осваиваю тут NiosII на основе Quartus Prime 15.1 и платки BeMicro MAX10.
Наваял простой проект с Nios fast, On-Chip RAM и JTAG UART.
В настройках BSP выставил минималистические опции reduced device drivers\small C library и т.п.
Хелло Ворлд занял около 4.5 килобайт кода.
Из под Эклипса всё работает, мигают светодиодики
Но прошиваю .sof или .pof - никаких признаков жизни...
Весь день пропарился с тем, чтобы наконец понять, что виновник зависанию - альтеровский JTAG UART.
В коде HAL по умолчанию включен вывод отладочной LOG инфы, а драйвер житаг уарта ведёт себя совсем не как уарт, а как натуральное фифо, которое при заполнении приёмника блокирует процессор намертво до тех пор, пока не подключишь альтеровскую консоль и не вычитаешь весь текст из этого так называемого уарта
Отключил вывод логов (log port) - всё заработало! И код сразу ужался до 300 байт
В настройках драйвера JTAG UART есть опция enable_jtag_uart_ignore_fifo_full_error, но её включение никак не повлияло на ситуацию.
Возможно, в минимальной конфигурации драйвера она не работает?
sonycman
Jan 16 2016, 08:05
Продолжаю копаться с Max10 и Nios

Заглянул в первый раз SignalTap'ом на шину AvalonMM, и с удивлением обнаружил, что обращение к On-Chip памяти (без кешей) занимает 5 тактов.
То есть довольно медленно, а я почему то думал, что он-чип автоматически подразумевает однотактовый доступ...

Включил кеш инструкций - стало лучше. Может быть, тогда проще выделить для кода tight-coupled memory?
Ещё показалось, что обращение к Avalon Memory-Mapped Slave в режиме чтения (чтение процессором периферийного слейва) идёт тоже довольно долго - около тех же 5-ти циклов.
Это при том, что у слейва read latency установлена в ноль в настройках QSys, и линия waitrequest не активируется.
Запись при этом идёт гораздо быстрее.
Интересно, а кто нибудь пробовал исполнять код прямо с флеши Max10?
Если включить флэш акселератор или кэш - то со скоростью выборки будет всё нормально?
Stewart Little
Jan 18 2016, 11:26
Цитата(sonycman @ Jan 16 2016, 11:05)

Интересно, а кто нибудь пробовал исполнять код прямо с флеши Max10?
Пробовал, работает.
Но быстродействие я не проверял...
sonycman
Jan 18 2016, 13:40
Цитата(Stewart Little @ Jan 18 2016, 15:26)

Пробовал, работает.
Но быстродействие я не проверял...
Ясно. Попробую потом обязательно.
Если для небольшого проекта рассчитывать только на внутреннюю память плис, то исполняя код во флеше можно сэкономить оперативку.
А включив флэш акселератор и кэш инструкций не сильно проиграть и по быстродействию, возможно?
Надо пробовать...
Alex_vod
Jan 19 2016, 08:31
Флешь всегда имела ограниченное число циклов записи, например 100 000 циклов, дальше выходит из строя.
Исполняя код во флешки вы её по идеи сломать должны, не сразу а со временем.
Может что то изменилось сейчас?
Stewart Little
Jan 19 2016, 10:26
Цитата(Alex_vod @ Jan 19 2016, 11:31)

Исполняя код во флешки вы её по идеи сломать должны, не сразу а со временем.
С какого перепуга? Ресурс флэша расходуется циклами записи-стирания, а не чтения.
Alex_vod
Jan 19 2016, 12:23
Да , точно, если исполняемый код, это только чтение
просто не силён в процессорах и терминологии, присматриваюсь пока
matsuk
Feb 25 2016, 12:40
Добрый день. Начал работать с Altera Cyclone III NEEK. И сейчас не могу решить одну проблему -> Реализация TCP/IP (лицензия есть) без использования MicroOC/OS-II (нет лицензии). Проект коммерческий, а стоимость MicroOC слишком велика.
Посоветуйте как можно реализовать стек TCP/IP?
Спасибо
triplex
Mar 10 2016, 18:40
Подскажите как можно выполнить симуляцию схемы, учитывающую работу программы ядра nios? Qsym этого не позволяет. Пробовал Modelsim, там тоже симулируется только проект квартуса, в его HDL форме. nios не добавить
triplex
Mar 12 2016, 03:53
Все, разобрался.Есть такая возможность. Почему сообщения удалять нельзя?
triplex
Jun 21 2016, 04:35
Кто знает каковы задержки при работе с блоком uart в ниос. При считывании или записи байта данных. Они такие же как при работе с pio или существенно выше?
vadimuzzz
Jun 21 2016, 05:04
Цитата(triplex @ Jun 21 2016, 10:35)

При считывании или записи байта данных. Они такие же как при работе с pio или существенно выше?
Если через регистры, то как с PIO. Если с использованием стандартных функций libc, то есть небольшой оверхед на буферизацию.
m_r_pan
Jun 22 2016, 09:35
Здравствуйте, уважаемые!
Начал разбираться с NIOS -- появился вопрос по SDRAM
Плата DE-SOC от terasic.
Учебный проект -- ниос + пио+SDRAM.
Прога до безобразия проста -- цикл FOR -- где пишу и сразу по тому же адресу читаю с внешней памяти.
Так ,вот при частоте 100 МГц время записи/ чтения 64 Мб составляет примерно 35 секунд- -- по моему это очень много!!!???
Ниос -- самая минимальная версия (е)
Еще заметил в дебаге, при просмотре монитора памяти то видно, что данные пишет не только в SDRAM но и в память onchip memory, и также по адресам которые в линкере вообще не присутствуют. Как это можно понять?
Использую функции IOWR(), IORD().
А сколько, по-вашему, должно быть? Только с прикидочным расчетом, пожалуйста. Начните с этого, и постепенно с помощью "обчества" мы во всем разберемся
Кузнец
Jul 25 2016, 18:38
Всем привет!!! Кто-нибудь делал в qsys мультипроцессорные системы? Я вот почитал этот тутор
https://www.altera.com/en_US/pdfs/literatur...or_tutorial.pdf Вроде спроектировал все норм., но когда дело дошло до eclipse "Failed to execute: ./create-this-bsp --cpu-name nios2_qsys --no-make" сказала мне SBT. Ошибка появляется при портировании проекта в eclipse, выбираешь новый->приложение и BSP шаблон-> выбираешь файл sopcinfo, выбираешь процессор и нажимаешь на finish и выскакивает ошибка. Кто встречался? Как бороться?
triplex
Jul 27 2016, 11:16
Подскажите.Я создаю в SOPC Builder свои компоненты, добавляю их в проект, компилирую, все нормально.Потом повторно захожу в SOPC Builder, если надо что-то изменить - этих компонентов в меню Library уже нет. И компиляция тоже выдает ошибку. Надо опять заходить в new component, открывать .tcl файлы и заново их создавать и добавлять. Что надо сделать, чтобы они сохранялись?
Stewart Little
Jul 27 2016, 12:36
Цитата(triplex @ Jul 27 2016, 14:16)

Подскажите.Я создаю в SOPC Builder свои компоненты, добавляю их в проект, компилирую, все нормально.Потом повторно захожу в SOPC Builder, если надо что-то изменить - этих компонентов в меню Library уже нет. И компиляция тоже выдает ошибку. Надо опять заходить в new component, открывать .tcl файлы и заново их создавать и добавлять. Что надо сделать, чтобы они сохранялись?
Первое - с SOPC Builder уже давно пора переходит на Qsys!
Второе - размещайте свои компоненты или в альтеровской папке ..\ip, или в папке проекта. Тогда они будут найдены по умолчанию.
Если размещаете их в других местах, то в SOPC Builder (или в Qsys), в меню Tools - Options, укажите путь к ним - IP Search Path.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.