Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclone 3 и тактовая частота Sopc компонента
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Acvarif
Имеется проект для Cyclone 3 (Sopc компонент + Nios F) Частота на которой работает Sopc компонент 55 мГц Системная частота Nios + обвъязка(контроллер RAM, UART и пр.) 100 мГц
Sopc компонент имеет связь с Nios по Avalon (запись-чтение)
Для потребностей Sopc компонента пытаюсь увеличить частоту вдвое 110 мГц затем внутри делю на 2 - получаю те же 55, а 110 предполагается использовать для точной подсинхронизации некоторых процессов в компоненте. Вроде для компонента ничего не должно меняться. Но система перестает работать вообще.
Ничего не сделал, только входной клок увеличил вдвое и поделил на 2.
Подскажите пожалуйста в чем может быть проблема?
Burenkov Sergey
Цитата(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, снаружи? Сделайте хотя бы скриншот структуры, ничего не понятно. Где и как умножаете и делите частоту?
Acvarif
Цитата(Burenkov Sergey @ Oct 12 2017, 14:35) *
У вас Nios отдельно от Sopc, снаружи? Сделайте хотя бы скриншот структуры, ничего не понятно. Где и как умножаете и делите частоту?

СтруктураНажмите для просмотра прикрепленного файла
Компонент на который подается 55,55.. мГц (altpll_io) - amulet0
Burenkov Sergey
Цитата(Acvarif @ Oct 12 2017, 15:41) *
СтруктураНажмите для просмотра прикрепленного файла
Компонент на который подается 55,55.. мГц (altpll_io) - amulet0

Вам надо убедиться что логика, которая обслуживает slave порт вашего блока работает на частоте altpll_io, а не на ее производной. SOPC поставил clock cross логику между портом slave вашего блока и мастерами на sys_clk, и все сигналы slave порта у вас работают на частоте altpll_io. Как вы делите частоту внутри amulet0? Это момент тоже важен, нельзя клок так просто пропускать через триггер-делитель, из-за этого тоже могут быть проблемы
Acvarif
Цитата(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. Я правильно понимаю?
Burenkov Sergey
Цитата(Acvarif @ Oct 12 2017, 16:22) *
Да именно так. altpll_i0 делаю 110, а в компоненте amulet0 просто делю ее на тригере. Предполагаю, что логика компонента должна работать также. Другое дело, что там (в компоненте) где осуществляется запись(чтение) данних в регистры(из регистров) компонента посредством Avalon нужно оставить неделенную на 2 altpll_i0. Я правильно понимаю?

Да, все что связано с Avalon нужно тактировать от altpll_io, либо сделать переход между домена вручную.
Раз уж деление на триггере никак нельзя убрать, то после триггера поставьте клоковый буфер и опишите эту частоту в sdc
Acvarif
Цитата(Burenkov Sergey @ Oct 12 2017, 16:33) *
Да, все что связано с Avalon нужно тактировать от altpll_io, либо сделать переход между домена вручную.
Раз уж деление на триггере никак нельзя убрать, то после триггера поставьте клоковый буфер и опишите эту частоту в sdc

Понял. Спасибо.
Как выглядит клоковый буфер?
Я так понимаю это должно быть описание на VHDL(Verilog)?
В sdc ее просто прописать.. ?
Burenkov Sergey
Цитата(Acvarif @ Oct 12 2017, 16:38) *
Понял. Спасибо.
Как выглядит клоковый буфер?
Я так понимаю это должно быть описание на VHDL(Verilog)?
В sdc ее просто прописать.. ?

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

Я бы сделал лучше просто второй вход клока, и на него подал с PLL частоту, так как-то прозрачнее и понятнее...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.