x393
1.0
FPGAcodeforElphelNC393camera
buf_xclk_mclk16_393.v
Go to the documentation of this file.
1
39
`timescale 1ns/1ps
40
41
module
buf_xclk_mclk16_393
(
42
input
mclk
,
// system clock, posedge
43
input
xclk
,
// half frequency (80 MHz nominal)
44
input
rst
,
// @posedge xclk reset module
45
input
[
15
:
0
]
din
,
46
input
din_stb
,
47
output
reg
[
15
:
0
]
dout
,
48
output
reg
dout_stb
);
49
50
reg
[
1
:
0
]
wa
;
51
reg
[
1
:
0
]
wa_mclk
;
52
reg
[
1
:
0
]
wa_mclk_d
;
53
reg
rst_mclk
;
54
reg
[
1
:
0
]
ra
;
55
reg
[
1
:
0
]
ra_next
;
56
reg
inc_ra
;
57
wire
[
15
:
0
]
pre_dout
;
58
59
always
@ (
posedge
xclk
)
begin
60
if
(
rst
)
wa
[
1
:
0
] <=
2'h0
;
61
else
if
(
din_stb
)
wa
[
1
:
0
] <={
wa
[
0
],~
wa
[
1
]};
62
end
63
64
always
@ (
posedge
mclk
)
begin
65
wa_mclk
[
1
:
0
] <=
wa
[
1
:
0
];
66
wa_mclk_d
[
1
:
0
] <=
wa_mclk
[
1
:
0
];
67
rst_mclk
<=
rst
;
68
if
(
rst_mclk
)
ra
[
1
:
0
] <=
2'h0
;
69
else
ra
[
1
:
0
] <=
inc_ra
?{
ra
[
0
],~
ra
[
1
]}:{
ra
[
1
],
ra
[
0
]};
70
71
if
(
rst_mclk
)
ra_next
[
1
:
0
] <=
2'h1
;
72
else
ra_next
[
1
:
0
] <=
inc_ra
?{~
ra
[
1
],~
ra
[
0
]}:{
ra
[
0
],~
ra
[
1
]};
73
74
inc_ra
<= !
rst
&& (
ra
[
1
:
0
]!=
wa_mclk_d
[
1
:
0
]) && (!
inc_ra
|| (
ra_next
[
1
:
0
]!=
wa_mclk_d
[
1
:
0
]));
75
dout_stb
<=
inc_ra
;
76
if
(
inc_ra
)
dout
[
15
:
0
] <=
pre_dout
[
15
:
0
];
77
end
78
79
reg
[
15
:
0
]
fifo_4x16_ram
[
0
:
3
];
80
always
@ (
posedge
xclk
)
if
(
din_stb
)
fifo_4x16_ram
[
wa
[
1
:
0
]] <=
din
[
15
:
0
];
81
assign
pre_dout
[
15
:
0
] =
fifo_4x16_ram
[
ra
[
1
:
0
]];
82
83
endmodule
84
buf_xclk_mclk16_393.3413rst_mclk
3413rst_mclkreg
Definition:
buf_xclk_mclk16_393.v:53
buf_xclk_mclk16_393.3407din_stb
3407din_stb
Definition:
buf_xclk_mclk16_393.v:46
buf_xclk_mclk16_393.3404xclk
3404xclk
Definition:
buf_xclk_mclk16_393.v:43
buf_xclk_mclk16_393.3418fifo_4x16_ram
[0:3] 3418fifo_4x16_ramreg[15:0]
Definition:
buf_xclk_mclk16_393.v:79
buf_xclk_mclk16_393.3405rst
3405rst
Definition:
buf_xclk_mclk16_393.v:44
buf_xclk_mclk16_393.3410wa
3410wareg[1:0]
Definition:
buf_xclk_mclk16_393.v:50
buf_xclk_mclk16_393.3416inc_ra
3416inc_rareg
Definition:
buf_xclk_mclk16_393.v:56
buf_xclk_mclk16_393.3406din
[15:0] 3406din
Definition:
buf_xclk_mclk16_393.v:45
buf_xclk_mclk16_393.3412wa_mclk_d
3412wa_mclk_dreg[1:0]
Definition:
buf_xclk_mclk16_393.v:52
buf_xclk_mclk16_393.3411wa_mclk
3411wa_mclkreg[1:0]
Definition:
buf_xclk_mclk16_393.v:51
buf_xclk_mclk16_393.3408dout
reg [15:0] 3408dout
Definition:
buf_xclk_mclk16_393.v:47
buf_xclk_mclk16_393.3417pre_dout
3417pre_doutwire[15:0]
Definition:
buf_xclk_mclk16_393.v:57
buf_xclk_mclk16_393
Definition:
buf_xclk_mclk16_393.v:41
buf_xclk_mclk16_393.3409dout_stb
reg 3409dout_stb
Definition:
buf_xclk_mclk16_393.v:48
buf_xclk_mclk16_393.3403mclk
3403mclk
Definition:
buf_xclk_mclk16_393.v:42
buf_xclk_mclk16_393.3415ra_next
3415ra_nextreg[1:0]
Definition:
buf_xclk_mclk16_393.v:55
buf_xclk_mclk16_393.3414ra
3414rareg[1:0]
Definition:
buf_xclk_mclk16_393.v:54
logger
buf_xclk_mclk16_393.v
Generated by
1.8.12