реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Делитель двух клоков с синхронизацией
sergey sva
сообщение Sep 21 2015, 09:52
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Есть несколько тактовых сигналов приходят в модуль делителя. Задержка(фаза) этих сигналов изменяется произвольно. Их нужно поделить на два без потери фазы. Сейчас сделал деление по переднему фронту, проблема когда задержка около 180 или 360 градусов при синхронизации делителя происходит перескок. Как засинхронизировать делитель что бы не было перескоков, может нужно использовать специальный делитель ?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 21 2015, 10:41
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



что такое синхронизация делителя?
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 21 2015, 11:15
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Опять не понятно написал ( ссори. Два сигнала нужно поделить на два. После будет измеряться задержка между этими сигналами. В момент захвата нужно что бы после делителя сигнал сохранял фазу от 0 до 360. Иногда происходит перескок.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 21 2015, 11:45
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



заведите эти 2 сигнала на клок д триггера, замкнутого на себя через инвертер, и будет вам делитель на 2, какая тут фаза может перескочить?
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 21 2015, 12:05
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



В момент захвата иногда перескакивает. Измерять нужно задержку между этими клоками их нужно правильно синхронизировать что бы измерить 0 до 360 градусов. Сейчас еще раз проверю может что то не так сделал. Примерно так сделано. Каждый сигнал проходит через такой делитель.
Код
reg chanclock;
reg clockout;
always@(posedge clck)
begin
   if(SINCHR)
   begin
       clockout = CLOCKFORDIV;
       chanclock = CLOCKFORDIV;

   end
   else begin  
    
   if(chanclock != CLOCKFORDIV)
   begin
      chanclock = CLOCKFORDIV;
       if(CLOCKFORDIV) clockout = ~clockout;
   end

end
end
Go to the top of the page
 
+Quote Post
likeasm
сообщение Sep 21 2015, 13:37
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



для xilinx

module clk_div(clk,clk_div2,rst);
input clk,rst;
output clk_div2;

FDCE FDCE_inst (
.Q(clk_div2), // 1-bit Data output
.C(clk), // 1-bit Clock input
.CE(1'b1), // 1-bit Clock enable input
.CLR(rst), // 1-bit Asynchronous clear input
.D(~clk_div2) // 1-bit Data input
);

endmodule
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 21 2015, 13:44
Сообщение #7


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(sergey sva @ Sep 21 2015, 15:05) *


Т триггер всегда описывал так

Код
module tff_async_reset (
data  , // Data Input
clk   , // Clock Input
reset , // Reset input
q       // Q output
);
//-----------Input Ports---------------
input data, clk, reset;
//-----------Output Ports---------------
output q;
//------------Internal Variables--------
reg q;
//-------------Code Starts Here---------
always @ ( posedge clk or negedge reset)
if (~reset) begin
  q <= 1'b0;
end else if (data) begin
  q <= !q;
end

endmodule //End Of Module tff_async_reset


никогда с этим не было проблем ...
может у Вас есть пересечение клоковых доменов?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 21 2015, 13:57
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



а пути сигналов по кристаллу учитываются?
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 21 2015, 15:02
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
может у Вас есть пересечение клоковых доменов?

Все от одного клока тактируется по переднему фронту.
Цитата
а пути сигналов по кристаллу учитываются?

Нет не учитывал, частота не высокая Кгц, не думал что это может влиять.
Один момент на вход модуля делителя поступают два клока из другого устройства фаза этих сигналов гуляет произвольно. Убирается сигнал сброса в делителе, он должен захватить входные клоки и на входе выдать два клока /2 фаза которых должна быть такая же как у поступающих на вход. Если тригер использовать иногда происходит перескок.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 21 2015, 17:51
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



погодите у вас такая схема

always @(posedge clk)
begin
clock1 <= clock1_in;
clock2 <= clock2_in;
end

то есть вы по фронту какого-то высокочастотного клока захватываете внешние произвольные сигналы?
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 22 2015, 04:29
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
то есть вы по фронту какого-то высокочастотного клока захватываете внешние произвольные сигналы?

Да. Сигналы не высокочастотные Кгц, а основной клок 120Мгц.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 22 2015, 05:05
Сообщение #12


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(sergey sva @ Sep 22 2015, 07:29) *
Да. Сигналы не высокочастотные Кгц, а основной клок 120Мгц.

Вот Вам и пересечение клоковых доменов

Цитата(Golikov A. @ Sep 21 2015, 20:51) *
always @(posedge clk)
begin
clock1 <= clock1_in;
clock2 <= clock2_in;
end

т.е. здесь должно быть по 2 регистра


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 22 2015, 05:15
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
т.е. здесь должно быть по 2 регистра

Не совсем понял как сделать, последовательно два регистра ?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 22 2015, 05:45
Сообщение #14


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(sergey sva @ Sep 22 2015, 08:15) *
Не совсем понял как сделать, последовательно два регистра ?

смотреть здесь
рисунок 3

И тогда делить на 2 (либо Ваша схема Т триггера) - на частоте кГц, а заводить на 120 Мгц уже деленную на 2.
Это если я правильно понял Вас


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 22 2015, 07:23
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



только надо понимать что разрешение по разности фаз упадет до синхронизирующей частоты. И не очень понятно зачем делить на 2 перед определением разности фаз, когда можно это сделать сразу для полной частоты?

Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st July 2025 - 15:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01488 секунд с 7
ELECTRONIX ©2004-2016