x393
1.0
FPGAcodeforElphelNC393camera
elastic_cross_clock.v
Go to the documentation of this file.
1
45
`timescale 1ns/1ps
46
47
module
elastic_cross_clock
#(
48
parameter
WIDTH
=
2
,
// width of the pulse counter
49
parameter
EXTRA_DLY
=
0
)(
// 0 or 1 - output duty cycle control
50
input
rst
,
51
input
src_clk
,
52
input
dst_clk
,
53
input
in_pulses
,
54
output
out_pulse
,
55
output
busy
56
);
57
reg
[
WIDTH
-
1
:
0
]
pend_cntr
=
0
;
58
wire
busy_single
;
59
wire
single_rq_w
;
60
61
// assign busy = busy_single && (|pend_cntr);
62
assign
busy
=
busy_single
|| (|
pend_cntr
);
63
assign
single_rq_w
= !
busy_single
&& ((|
pend_cntr
) ||
in_pulses
);
64
65
always
@(
posedge
src_clk
)
begin
66
if
(
rst
)
pend_cntr
<=
0
;
67
else
if
(
in_pulses
&& !
single_rq_w
)
pend_cntr
<=
pend_cntr
+
1
;
68
else
if
(!
in_pulses
&&
single_rq_w
)
pend_cntr
<=
pend_cntr
-
1
;
69
end
70
71
pulse_cross_clock
#(
72
.
EXTRA_DLY
(
EXTRA_DLY
)
73
)
pulse_cross_clock_i
(
74
.
rst
(
rst
),
// input
75
.
src_clk
(
src_clk
),
// input
76
.
dst_clk
(
dst_clk
),
// input
77
.
in_pulse
(
single_rq_w
),
// input
78
.
out_pulse
(
out_pulse
),
// output
79
.
busy
(
busy_single
)
// output
80
);
81
82
endmodule
83
pulse_cross_clock.10722rst
10722rst
Definition:
pulse_cross_clock.v:46
elastic_cross_clock.10356rst
10356rst
Definition:
elastic_cross_clock.v:50
elastic_cross_clock.10363busy_single
10363busy_singlewire
Definition:
elastic_cross_clock.v:58
pulse_cross_clock.10724dst_clk
10724dst_clk
Definition:
pulse_cross_clock.v:48
pulse_cross_clock.10727busy
10727busy
Definition:
pulse_cross_clock.v:51
elastic_cross_clock.10357src_clk
10357src_clk
Definition:
elastic_cross_clock.v:51
elastic_cross_clock.pulse_cross_clock
pulse_cross_clock_i pulse_cross_clock
Definition:
elastic_cross_clock.v:71
pulse_cross_clock.10725in_pulse
10725in_pulse
Definition:
pulse_cross_clock.v:49
elastic_cross_clock.10359in_pulses
10359in_pulses
Definition:
elastic_cross_clock.v:53
elastic_cross_clock.10361busy
10361busy
Definition:
elastic_cross_clock.v:55
pulse_cross_clock.10723src_clk
10723src_clk
Definition:
pulse_cross_clock.v:47
elastic_cross_clock.10355EXTRA_DLY
10355EXTRA_DLY0
Definition:
elastic_cross_clock.v:49
pulse_cross_clock.10726out_pulse
10726out_pulse
Definition:
pulse_cross_clock.v:50
elastic_cross_clock.10358dst_clk
10358dst_clk
Definition:
elastic_cross_clock.v:52
elastic_cross_clock.10362pend_cntr
10362pend_cntrreg[WIDTH-1:0]
Definition:
elastic_cross_clock.v:57
elastic_cross_clock.10354WIDTH
10354WIDTH2
Definition:
elastic_cross_clock.v:48
elastic_cross_clock
Definition:
elastic_cross_clock.v:47
elastic_cross_clock.10364single_rq_w
10364single_rq_wwire
Definition:
elastic_cross_clock.v:59
elastic_cross_clock.10360out_pulse
10360out_pulse
Definition:
elastic_cross_clock.v:54
util_modules
elastic_cross_clock.v
Generated by
1.8.12