Я пишу код с использованием VHDL для преобразования часов 24 МГц и 12 МГц в часы 8 МГц. Может ли кто-нибудь помочь мне в этом кодировании? Заранее спасибо.
Как преобразовать тактовую частоту 24 МГц и 12 МГц в тактовую частоту 8 МГц с помощью VHDL?
Ответы (3)
Это для ПЛИС? Или что-то другое? Вы действительно делите часы или просто сигнал? Для деления на три счетчика попробуйте эту ссылку:
http://www.asic-world.com/examples/vhdl/divide_by_3.html
И для 2/3:
http://www.edaboard.com/thread42620.html
Как уже сказал Мартин, используйте устройство управления часами по рекомендациям Xilinx, чтобы разделить ваши часы на более низкую частоту.
Хотя у вас может возникнуть соблазн реализовать делитель тактовой частоты с использованием логики и счетчика, вы не получите хороших результатов синтеза.
Вот несколько советов:
- Обязательно внимательно прочитайте и следуйте рекомендациям по аппаратному обеспечению управления часами для вашего устройства. Может быть довольно много «ошибок», связанных с включением питания, сбросом, потерей блокировки часов и т. Д.
- Убедитесь, что вы используете устройство управления часами в соответствии с его спецификациями. См. техническое описание вашего устройства для получения дополнительной информации (в данном случае для S3-A).
- Используйте редактор FPGA, чтобы проверить правильность размещения и конфигурации ваших блоков управления часами (т. е. оказались ли они в нужном месте на чипе).
- Придерживайтесь рекомендуемых практик для часов обратной связи и буферизации часов.
Используйте DCM или PLL (в зависимости от семейства FPGA) - примеры есть в документации. Если вы скажете нам, какая семья, я мог бы указать вам более точно.
РЕДАКТИРОВАТЬ: Как вы говорите, Spartan 3ADSP - вам нужно либо:
- Используйте мастер синхронизации ядра генератора, чтобы создать файл VHDL или Verilog с необходимыми вам компонентами и надеяться, что вам никогда не понадобится понимать, что происходит.
- Прочтите руководство по библиотекам и раздел DCM руководства пользователя для этого чипа, создайте экземпляр DCM самостоятельно и примените к нему правильные общие параметры/параметры.
Не забудьте подать импульс сброса на DCM после завершения настройки 0 и убедитесь, что импульс длится достаточно долго. Минимальная длина импульса разная для каждого семейства, я не помню, что это такое для этого чипа, поэтому проверьте таблицу данных.