реклама на сайте
подробности

 
 
> Nios II и временные ограничения, Задание временных констрейнов для Nios II
Грендайзер
сообщение May 29 2015, 07:07
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 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? 05.gif

Сообщение отредактировал Грендайзер - May 29 2015, 07:09
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
vadimuzzz
сообщение May 30 2015, 02:56
Сообщение #2


Гуру
******

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



Цитата(Грендайзер @ May 29 2015, 13:07) *
Возможно необходимо создавать отдельный .sdc файл.

Да. В отчете TQ написано, какие файлы констрейнов используются.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jun 1 2015, 06:45
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



По запросу Read SC File TQ выдал мне вот такую табличку. Cpu.sdc - файл созданный Sopc Builder, а SDC1.sdc - созданный мной. Т.е. при синтезе схемы будут использованы оба файла?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 2 2015, 00:02
Сообщение #4


Гуру
******

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



Цитата(Грендайзер @ Jun 1 2015, 12:45) *
По запросу Read SC File TQ выдал мне вот такую табличку. Cpu.sdc - файл созданный Sopc Builder, а SDC1.sdc - созданный мной. Т.е. при синтезе схемы будут использованы оба файла?

Да. Причем порядок, в котором они перечислены, имеет значение: TQ как бы сольет их в один файл. Если будут взаимоисключающие констрейны, то приоритет имеет ограничение, прочитанное позже (будет соотв. предупреждение).
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jun 2 2015, 07:46
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Цитата
приоритет имеет ограничение, прочитанное позже (будет соотв. предупреждение).

О как!
vadimuzzz, большое спасибо за ответ!
Хотя всё же непонятно, где же по умолчанию прописано, на какой частоте будит работать Nios, т.е. в файле cpu.sdc про частоту вроде ничего нет...
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 2 2015, 11:39
Сообщение #6


Гуру
******

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



Цитата(Грендайзер @ Jun 2 2015, 13:46) *
Хотя всё же непонятно, где же по умолчанию прописано, на какой частоте будит работать Nios, т.е. в файле cpu.sdc про частоту вроде ничего нет...

Это на вашу ответственность клоки ограничить. Иначе TQ по умолчанию 1ГГц воткнет
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jun 3 2015, 05:41
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Цитата
Это на вашу ответственность клоки ограничить. Иначе TQ по умолчанию 1ГГц воткнет

Ммм... Не согласен. Развести Ниос на частоту 1ГГц у Quartus не получтся, выскочило бы предупреждение, о том что временные ограничения не выполняются... Выскакивает лишь о том, что не задан джиттер тактового сигнала... Впрочем в SOPC Builder, при создании системы, ведь значение тактовой частоты указывается... другой вопрос откуда про неё TQ то узнаёт?!
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 4 2015, 03:59
Сообщение #8


Гуру
******

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



проект можете выложить? или отчет TQ после компиляции
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jun 4 2015, 07:29
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 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 за запускающий фронт принял передний(возрастающий) а защёлкивабщий - спадающий?! blink.gif

Сообщение отредактировал Грендайзер - Jun 4 2015, 07:42
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jun 4 2015, 07:48
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(Грендайзер @ Jun 2 2015, 10:46) *
О как!
vadimuzzz, большое спасибо за ответ!
Хотя всё же непонятно, где же по умолчанию прописано, на какой частоте будит работать Nios, т.е. в файле cpu.sdc про частоту вроде ничего нет...

Насколько я понимаю, системная частота в SOPC Builder пишется не для STA, а в качестве параметра для модулей, которым надо отсчитывать задержки реального времени, и знать фактический период системного клока.
Рабочая частота Ниоса определяется частотой клока, которым он тактируется, если она не определена в sdc, то берётся из параметров PLL, а если и PLL нет, то уже никак.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jun 4 2015, 09:47
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Цитата
Рабочая частота Ниоса определяется частотой клока, которым он тактируется, если она не определена в sdc, то берётся из параметров PLL, а если и PLL нет, то уже никак.
Так в том то и дело, что частота не определена. В этой ситуации TQ должен предположить, что раз частота не задана, значит разводить надо под частоту 1ГГц, однако развести под такую частоту ниос у него врят ли получится (максимальная его рабочая частота по заявлениям альтеровцев 100МГц) => должен выскочить ворнинг о том, что временные ограничения не соблюдаются... Однако его нет...
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jun 4 2015, 10:14
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(Грендайзер @ Jun 4 2015, 12:47) *
Так в том то и дело, что частота не определена. В этой ситуации TQ должен предположить, что раз частота не задана, значит разводить надо под частоту 1ГГц, однако развести под такую частоту ниос у него врят ли получится (максимальная его рабочая частота по заявлениям альтеровцев 100МГц) => должен выскочить ворнинг о том, что временные ограничения не соблюдаются... Однако его нет...

Если частота не задана, то анализ путей относительно соответствующего клока вообще не производится, и будет предупреждение, что не задана частота.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jun 4 2015, 10:28
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Я в каком то мануале видел (да и vadimuzzz подтвердил), что TQ считает, что по умолчанию все тактовые частоты равны 1ГГц. Впрочем единственное предупреждение которое выскакивает, как я уже писал, относится к тому, что не задан джиттер... то биш
Цитата
The following clock transfers have no clock uncertainty assignment
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jun 4 2015, 10:40
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(Грендайзер @ Jun 4 2015, 13:28) *
Я в каком то мануале видел (да и vadimuzzz подтвердил), что TQ считает, что по умолчанию все тактовые частоты равны 1ГГц. Впрочем единственное предупреждение которое выскакивает, как я уже писал, относится к тому, что не задан джиттер... то биш

Мне кажется, что тестирование поведения Квартуса на дизайне с неопределёнными клоками так же бессмысленно, как тестирование японской бензопилы в известном анекдотеsm.gif.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jun 4 2015, 11:45
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Timmy, обсолютно согласен! Вот и ходелось бы понять какой он там клок использует... Хотя конечно со своиму вопросу я более менее въехал... После генерирования системы на ниос достаточно написать отдельный .sdc файлик и если в нём не будит ошибок, TQ его подцепит и сам всё поймёт. Ещё раз всем большое спасибо. sm.gif

Сообщение отредактировал Грендайзер - Jun 4 2015, 11:46
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 07:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01498 секунд с 7
ELECTRONIX ©2004-2016