|
Nios II и временные ограничения, Задание временных констрейнов для Nios II |
|
|
|
May 29 2015, 07:07
|
Местный
  
Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451

|
Здравствуйте. Есть ядро написанное на 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?
Сообщение отредактировал Грендайзер - May 29 2015, 07:09
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Jun 2 2015, 07:46
|
Местный
  
Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451

|
Цитата приоритет имеет ограничение, прочитанное позже (будет соотв. предупреждение). О как! vadimuzzz, большое спасибо за ответ! Хотя всё же непонятно, где же по умолчанию прописано, на какой частоте будит работать Nios, т.е. в файле cpu.sdc про частоту вроде ничего нет...
|
|
|
|
|
Jun 3 2015, 05:41
|
Местный
  
Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451

|
Цитата Это на вашу ответственность клоки ограничить. Иначе TQ по умолчанию 1ГГц воткнет Ммм... Не согласен. Развести Ниос на частоту 1ГГц у Quartus не получтся, выскочило бы предупреждение, о том что временные ограничения не выполняются... Выскакивает лишь о том, что не задан джиттер тактового сигнала... Впрочем в SOPC Builder, при создании системы, ведь значение тактовой частоты указывается... другой вопрос откуда про неё TQ то узнаёт?!
|
|
|
|
|
Jun 4 2015, 07:29
|
Местный
  
Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451

|
В смысле "проект"? Я просто собрал систему из ниос2е, памяти на кристалле, порта В/В и пробное ядро о котором я здесь упомянал -> http://electronix.ru/forum/index.php?showt...=125994&hl=. Что же касается отчёта TQ, то какой Вас именно интересует? Вот на рисунке я представил отчёт clock summa summary (предварительно удалив собственный SDC фай). Здесь представлена частота 10 МГц (хотя в SOPC Builder я задавал 50МГц). На другом показан анализ сетапа одного из путей (произвольного). Так вот тут TQ за запускающий фронт принял передний(возрастающий) а защёлкивабщий - спадающий?!
Сообщение отредактировал Грендайзер - Jun 4 2015, 07:42
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 4 2015, 07:48
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Цитата(Грендайзер @ Jun 2 2015, 10:46)  О как! vadimuzzz, большое спасибо за ответ! Хотя всё же непонятно, где же по умолчанию прописано, на какой частоте будит работать Nios, т.е. в файле cpu.sdc про частоту вроде ничего нет... Насколько я понимаю, системная частота в SOPC Builder пишется не для STA, а в качестве параметра для модулей, которым надо отсчитывать задержки реального времени, и знать фактический период системного клока. Рабочая частота Ниоса определяется частотой клока, которым он тактируется, если она не определена в sdc, то берётся из параметров PLL, а если и PLL нет, то уже никак.
|
|
|
|
|
Jun 4 2015, 09:47
|
Местный
  
Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451

|
Цитата Рабочая частота Ниоса определяется частотой клока, которым он тактируется, если она не определена в sdc, то берётся из параметров PLL, а если и PLL нет, то уже никак. Так в том то и дело, что частота не определена. В этой ситуации TQ должен предположить, что раз частота не задана, значит разводить надо под частоту 1ГГц, однако развести под такую частоту ниос у него врят ли получится (максимальная его рабочая частота по заявлениям альтеровцев 100МГц) => должен выскочить ворнинг о том, что временные ограничения не соблюдаются... Однако его нет...
|
|
|
|
|
Jun 4 2015, 10:14
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Цитата(Грендайзер @ Jun 4 2015, 12:47)  Так в том то и дело, что частота не определена. В этой ситуации TQ должен предположить, что раз частота не задана, значит разводить надо под частоту 1ГГц, однако развести под такую частоту ниос у него врят ли получится (максимальная его рабочая частота по заявлениям альтеровцев 100МГц) => должен выскочить ворнинг о том, что временные ограничения не соблюдаются... Однако его нет... Если частота не задана, то анализ путей относительно соответствующего клока вообще не производится, и будет предупреждение, что не задана частота.
|
|
|
|
|
Jun 4 2015, 10:28
|
Местный
  
Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451

|
Я в каком то мануале видел (да и vadimuzzz подтвердил), что TQ считает, что по умолчанию все тактовые частоты равны 1ГГц. Впрочем единственное предупреждение которое выскакивает, как я уже писал, относится к тому, что не задан джиттер... то биш Цитата The following clock transfers have no clock uncertainty assignment
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|