за генериране на цифров сигнал

P

pushpa

Guest
Здрасти,
Аз имам две clks, Clk1 и Clk2.Искам да генерира изходен сигнал Х = 1, когато Clk1 е пред Clk2 и Х = 0, когато Clk1 е зад Clk2.

 
Здравейте pushpa,

Предположим, че за периода на CLK 2 е същото.

Можете да генерирате 2 ръб открива сигнала (само XOR без версия тръба с глазура версия), clk1_edge, clk2_edge.После,

Винаги @ (clk1_edge, clk2_edge)
IF (clk1_edge & &! clk2_edge)
X = 1;
в противен случай
х = 0;

 
как да тест, който е пред нас,
Каква е вашата означава?
Аз не съм сигурен, че разбирам въпроса ви correcttly.
clk1, ако е пред clk2, но за следващия период на clk1, че може би зад clk2
на frenquency на часовника двете е едно и също?
Може би можете да опитате, както следва
винаги (@ posedge clk1)
IF (clk2)
х <= 1'b0;
в противен случай
х <= 1'b1;
но преди да решите да го направите като по-горе, може би трябва да се използват два тригера да синхронизирате clk2 с clk1

 
Нейната много проста Вие просто трябва да се вземе проба един часовник от othere!
Ето това е!

Код:

"срок 1ns/1ps

модул phase_comp (

/ / Извежда

x_out,

/ / Изходи

clk1, clk2

);

вход clk1, clk2;

x_out продукция;

обл clk2_r, clk2_rr;присвоите x_out = clk2_rr;

Винаги @ (posedge clk1) започва

clk2_r <= clk2;

clk2_rr <= clk2_r;

приключвам

endmodule / / phase_compмодул Test ();

обл clk1;

обл clk2;

тел x_out;phase_comp phase_comp (

/ / Извежда

. x_out (x_out),

/ / Изходи

. clk1 (clk1),

. clk2 (clk2));

обл CLK;

обл [1:0] брой;

обл подбора;Винаги @ (брой или SEL) започва

clk1 <= подбора?
брой [0]: брой [1];

clk2 <= подбора?
брой [1]: брой [0];

приключвампървоначално започва

$ shm_open ( "Waveform");

$ shm_probe (тест ", както");

Count = 0;

SEL = 0;

CLK = 0;

# 400;

SEL = 1;

# 400;

$ покритие;

край / / първоначално започва

Винаги @ (posedge CLK) започва

брой [0] <= брой [1];

брой [1] <= ~ броя [0];

приключвамВинаги # 5 CLK = ~ CLK;

endmodule / / изпитване

 
Здравейте, nand_gates

Вашето предположение е, че двата часовника са еднакви във frequence и различни във фаза.

Можете да използвате един часовник проба на друго ниво часовник.
След това тя трябва да decise часовник, който е водещ от включените в извадката ниво (0 / 1).

Когато фаза между две часовници е много малък.
резултатът може да грешно.В тази ситуация, то не е въпрос да се намери един, който е водещ extractly.

Но аз все още имам един въпрос, който ще нивото на сигнала на пробата да е висока или ниска винаги?
Или то се променя във всяка една / две / три цикъла (това не е стабилна)?С уважение,
Jarod

 
Да аз мисля така
за clk1, clk2 е asynchronism сигнал

 
Честотата на CLK две трябва да са съпоставими, ако не, въпросът е meanless.

 

Welcome to EDABoard.com

Sponsor

Back
Top