|
|
  |
Cyclone 3 и тактовая частота Sopc компонента |
|
|
|
Oct 12 2017, 11:35
|
Частый гость
 
Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145

|
Цитата(Acvarif @ Oct 12 2017, 13:47)  Имеется проект для Cyclone 3 (Sopc компонент + Nios F) Частота на которой работает Sopc компонент 55 мГц Системная частота Nios + обвъязка(контроллер RAM, UART и пр.) 100 мГц Sopc компонент имеет связь с Nios по Avalon (запись-чтение) Для потребностей Sopc компонента пытаюсь увеличить частоту вдвое 110 мГц затем внутри делю на 2 - получаю те же 55, а 110 предполагается использовать для точной подсинхронизации некоторых процессов в компоненте. Вроде для компонента ничего не должно меняться. Но система перестает работать вообще. Ничего не сделал, только входной клок увеличил вдвое и поделил на 2. Подскажите пожалуйста в чем может быть проблема? У вас Nios отдельно от Sopc, снаружи? Сделайте хотя бы скриншот структуры, ничего не понятно. Где и как умножаете и делите частоту?
|
|
|
|
|
Oct 12 2017, 12:41
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Burenkov Sergey @ Oct 12 2017, 14:35)  У вас Nios отдельно от Sopc, снаружи? Сделайте хотя бы скриншот структуры, ничего не понятно. Где и как умножаете и делите частоту? Структура
 РЈРСВВВВВВеньшено Р В Р’В Р СћРІР‚ВВВВВР С• 83%
987 x 605 (143.45 килобайт)
|
Компонент на который подается 55,55.. мГц (altpll_io) - amulet0
|
|
|
|
|
Oct 12 2017, 13:03
|
Частый гость
 
Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145

|
Цитата(Acvarif @ Oct 12 2017, 15:41)  Структура
 РЈРСВВВВВВеньшено Р В Р’В Р СћРІР‚ВВВВВР С• 68%
987 x 605 (143.45 килобайт)
|
Компонент на который подается 55,55.. мГц (altpll_io) - amulet0 Вам надо убедиться что логика, которая обслуживает slave порт вашего блока работает на частоте altpll_io, а не на ее производной. SOPC поставил clock cross логику между портом slave вашего блока и мастерами на sys_clk, и все сигналы slave порта у вас работают на частоте altpll_io. Как вы делите частоту внутри amulet0? Это момент тоже важен, нельзя клок так просто пропускать через триггер-делитель, из-за этого тоже могут быть проблемы
Сообщение отредактировал Burenkov Sergey - Oct 12 2017, 13:04
|
|
|
|
|
Oct 12 2017, 13:22
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Burenkov Sergey @ Oct 12 2017, 16:03)  Вам надо убедиться что логика, которая обслуживает slave порт вашего блока работает на частоте altpll_io, а не на ее производной. SOPC поставил clock cross логику между портом slave вашего блока и мастерами на sys_clk, и все сигналы slave порта у вас работают на частоте altpll_io. Как вы делите частоту внутри amulet0? Это момент тоже важен, нельзя клок так просто пропускать через триггер-делитель, из-за этого тоже могут быть проблемы Да именно так. altpll_i0 делаю 110, а в компоненте amulet0 просто делю ее на тригере. Предполагаю, что логика компонента должна работать также. Другое дело, что там (в компоненте) где осуществляется запись(чтение) данних в регистры(из регистров) компонента посредством Avalon нужно оставить неделенную на 2 altpll_i0. Я правильно понимаю?
|
|
|
|
|
Oct 12 2017, 13:33
|
Частый гость
 
Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145

|
Цитата(Acvarif @ Oct 12 2017, 16:22)  Да именно так. altpll_i0 делаю 110, а в компоненте amulet0 просто делю ее на тригере. Предполагаю, что логика компонента должна работать также. Другое дело, что там (в компоненте) где осуществляется запись(чтение) данних в регистры(из регистров) компонента посредством Avalon нужно оставить неделенную на 2 altpll_i0. Я правильно понимаю? Да, все что связано с Avalon нужно тактировать от altpll_io, либо сделать переход между домена вручную. Раз уж деление на триггере никак нельзя убрать, то после триггера поставьте клоковый буфер и опишите эту частоту в sdc
|
|
|
|
|
Oct 12 2017, 13:38
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Burenkov Sergey @ Oct 12 2017, 16:33)  Да, все что связано с Avalon нужно тактировать от altpll_io, либо сделать переход между домена вручную. Раз уж деление на триггере никак нельзя убрать, то после триггера поставьте клоковый буфер и опишите эту частоту в sdc Понял. Спасибо. Как выглядит клоковый буфер? Я так понимаю это должно быть описание на VHDL(Verilog)? В sdc ее просто прописать.. ?
|
|
|
|
|
Oct 12 2017, 13:54
|
Частый гость
 
Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145

|
Цитата(Acvarif @ Oct 12 2017, 16:38)  Понял. Спасибо. Как выглядит клоковый буфер? Я так понимаю это должно быть описание на VHDL(Verilog)? В sdc ее просто прописать.. ? Видимо надо такую штуку поставить https://www.altera.com/content/dam/altera-w...ug_altclock.pdfне уверен... Я бы сделал лучше просто второй вход клока, и на него подал с PLL частоту, так как-то прозрачнее и понятнее...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|