Как вы обнаруживаете синхронизацию восходящего фронта двух разных часов (разных частот) в программировании VHDL с использованием программного обеспечения Xilinx?Обнаружение синхронизации фронтального фронта двух разных часов
Существует главный тактовый сигнал частоты 31.845 МГц, а также другие часы с частотой 29.972 МГц. Таким образом, основная цель состоит в том, чтобы вызвать действие, когда есть синхронизация между нарастающими фронтами из 2 тактов. Мы попытались реализовать его с помощью флипфлопов, но мы могли бы добиться только синхронизации уровня, а не синхронизации по краю.
И мы не можем сравнивать нарастающие фронты двух разных часов в таких выражениях, как IF
и WAIT
в vhdl, так что об этом и речи не может быть и речи.
Мы пытаемся подсчитать импульсы с помощью счетчика. Для этого нам нужно остановить счетчик, когда имеет место согласование краев. Мы пытаемся реализовать метод под названием «Интерполяция Вернье».
Первоначально мы использовали следующий код утверждения, но так как фронты 2 различных часов (clk0, CLK1) не могут сравниться в
IF
заявления, мы должны были бросить его.if(rising_edge(clk0)=rising_edge(clk1)) then wait;
Затем мы попытались использовать
WAIT
заявления (wait until
), но это не удалось.- Затем мы попытались использовать триггеры и схемы задержки (D flipflop), но это привело к синхронизации уровня, а не к синхронизации по фронту.
Какова ваша общая цель и каковы диапазоны частот для часов. –
Существует главный тактовый генератор частоты 31.845 МГц, а другой - частота 29.972 МГц. Таким образом, основная цель состоит в том, чтобы вызвать действие, когда есть синхронизация между нарастающими фронтами из 2 тактов. Мы попытались реализовать его с помощью флипфлопов, но мы могли бы добиться только синхронизации уровня, а не синхронизации по краю. – KVK
И мы не можем сравнивать нарастающие фронты двух разных часов в таких выражениях, как IF и WAIT в vhdl, так что это не может быть и речи. – KVK