-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcontrol.v
More file actions
59 lines (48 loc) · 1.36 KB
/
control.v
File metadata and controls
59 lines (48 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
`timescale 1ps / 1ps
module control
#(
parameter N1 = 4,
parameter N2 = 4,
parameter M = 8
)
(
input wire clk,
input wire rst,
input wire enable_row_count,
output wire [$clog2(M)-1:0] pixel_cntr_A,
output wire [($clog2(M/N1)?$clog2(M/N1):1)-1:0] slice_cntr_A,
output wire [($clog2(M/N2)?$clog2(M/N2):1)-1:0] pixel_cntr_B,
output wire [$clog2(M)-1:0] slice_cntr_B,
output wire [$clog2((M*M)/N1)-1:0] rd_addr_A,
output wire [$clog2((M*M)/N2)-1:0] rd_addr_B
);
// insert your RTL for rd_addr_A, rd_addr_B here
assign rd_addr_A = (pixel_cntr_A) + (slice_cntr_A * M);
assign rd_addr_B = (pixel_cntr_B * M) + (slice_cntr_B);
counter#
(
.WIDTH (M),
.HEIGHT (M/N2)
)
counter_B
(
.clk (clk),
.rst (rst),
.enable_row_count (1'b1),
.pixel_cntr (slice_cntr_B),
.slice_cntr (pixel_cntr_B)
);
counter#
(
.WIDTH (M),
.HEIGHT (M/N1)
)
counter_A
(
.clk (clk),
.rst (rst),
.enable_row_count (enable_row_count),
.pixel_cntr (pixel_cntr_A),
.slice_cntr (slice_cntr_A)
);
endmodule