Перейти к содержанию
    

Cyclone 3 и тактовая частота Sopc компонента

Имеется проект для Cyclone 3 (Sopc компонент + Nios F) Частота на которой работает Sopc компонент 55 мГц Системная частота Nios + обвъязка(контроллер RAM, UART и пр.) 100 мГц

Sopc компонент имеет связь с Nios по Avalon (запись-чтение)

Для потребностей Sopc компонента пытаюсь увеличить частоту вдвое 110 мГц затем внутри делю на 2 - получаю те же 55, а 110 предполагается использовать для точной подсинхронизации некоторых процессов в компоненте. Вроде для компонента ничего не должно меняться. Но система перестает работать вообще.

Ничего не сделал, только входной клок увеличил вдвое и поделил на 2.

Подскажите пожалуйста в чем может быть проблема?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имеется проект для Cyclone 3 (Sopc компонент + Nios F) Частота на которой работает Sopc компонент 55 мГц Системная частота Nios + обвъязка(контроллер RAM, UART и пр.) 100 мГц

Sopc компонент имеет связь с Nios по Avalon (запись-чтение)

Для потребностей Sopc компонента пытаюсь увеличить частоту вдвое 110 мГц затем внутри делю на 2 - получаю те же 55, а 110 предполагается использовать для точной подсинхронизации некоторых процессов в компоненте. Вроде для компонента ничего не должно меняться. Но система перестает работать вообще.

Ничего не сделал, только входной клок увеличил вдвое и поделил на 2.

Подскажите пожалуйста в чем может быть проблема?

У вас Nios отдельно от Sopc, снаружи? Сделайте хотя бы скриншот структуры, ничего не понятно. Где и как умножаете и делите частоту?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас Nios отдельно от Sopc, снаружи? Сделайте хотя бы скриншот структуры, ничего не понятно. Где и как умножаете и делите частоту?

Структураpost-39850-1507811968_thumb.jpg

Компонент на который подается 55,55.. мГц (altpll_io) - amulet0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Структураpost-39850-1507811968_thumb.jpg

Компонент на который подается 55,55.. мГц (altpll_io) - amulet0

Вам надо убедиться что логика, которая обслуживает slave порт вашего блока работает на частоте altpll_io, а не на ее производной. SOPC поставил clock cross логику между портом slave вашего блока и мастерами на sys_clk, и все сигналы slave порта у вас работают на частоте altpll_io. Как вы делите частоту внутри amulet0? Это момент тоже важен, нельзя клок так просто пропускать через триггер-делитель, из-за этого тоже могут быть проблемы

Изменено пользователем Burenkov Sergey

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам надо убедиться что логика, которая обслуживает slave порт вашего блока работает на частоте altpll_io, а не на ее производной. SOPC поставил clock cross логику между портом slave вашего блока и мастерами на sys_clk, и все сигналы slave порта у вас работают на частоте altpll_io. Как вы делите частоту внутри amulet0? Это момент тоже важен, нельзя клок так просто пропускать через триггер-делитель, из-за этого тоже могут быть проблемы

Да именно так. altpll_i0 делаю 110, а в компоненте amulet0 просто делю ее на тригере. Предполагаю, что логика компонента должна работать также. Другое дело, что там (в компоненте) где осуществляется запись(чтение) данних в регистры(из регистров) компонента посредством Avalon нужно оставить неделенную на 2 altpll_i0. Я правильно понимаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да именно так. altpll_i0 делаю 110, а в компоненте amulet0 просто делю ее на тригере. Предполагаю, что логика компонента должна работать также. Другое дело, что там (в компоненте) где осуществляется запись(чтение) данних в регистры(из регистров) компонента посредством Avalon нужно оставить неделенную на 2 altpll_i0. Я правильно понимаю?

Да, все что связано с Avalon нужно тактировать от altpll_io, либо сделать переход между домена вручную.

Раз уж деление на триггере никак нельзя убрать, то после триггера поставьте клоковый буфер и опишите эту частоту в sdc

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, все что связано с Avalon нужно тактировать от altpll_io, либо сделать переход между домена вручную.

Раз уж деление на триггере никак нельзя убрать, то после триггера поставьте клоковый буфер и опишите эту частоту в sdc

Понял. Спасибо.

Как выглядит клоковый буфер?

Я так понимаю это должно быть описание на VHDL(Verilog)?

В sdc ее просто прописать.. ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понял. Спасибо.

Как выглядит клоковый буфер?

Я так понимаю это должно быть описание на VHDL(Verilog)?

В sdc ее просто прописать.. ?

Видимо надо такую штуку поставить https://www.altera.com/content/dam/altera-w...ug_altclock.pdf

не уверен...

 

Я бы сделал лучше просто второй вход клока, и на него подал с PLL частоту, так как-то прозрачнее и понятнее...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...