x393
1.0
FPGAcodeforElphelNC393camera
huffman_stuffer_meta.v
Go to the documentation of this file.
1
46
`timescale 1ns/1ps
47
48
module
huffman_stuffer_meta
(
49
input
mclk
,
// system clock to write tables
50
input
mrst
,
51
input
xclk
,
// pixel clock, sync to incoming data
52
input
en_huffman
,
// @xclk
53
input
en_stuffer
,
// @xclk
54
input
abort_stuffer
,
// @ any
55
56
// Interface to program Huffman tables
57
input
tser_we
,
// enable write to a table
58
input
tser_a_not_d
,
// address/not data distributed to submodules
59
input
[
7
:
0
]
tser_d
,
// byte-wide serialized tables address/data to submodules
60
61
// Input data
62
input
[
15
:
0
]
di
,
// [15:0] specially RLL prepared 16-bit data (to FIFO) (sync to xclk)
63
input
ds
,
// di valid strobe (sync to xclk)
64
65
// time stamping - will copy time at the end of color_first (later than the first hact after vact in the current frame, but before the next one
66
// and before the data is needed for output
67
input
ts_pre_stb
,
// @mclk - 1 cycle before receiving 8 bytes of timestamp data
68
input
[
7
:
0
]
ts_data
,
// timestamp data (s0,s1,s2,s3,us0,us1,us2,us3==0)
69
input
color_first
,
// @fradv_clk only used for timestamp
70
// outputs @ negedge clk
71
output
[
31
:
0
]
data_out
,
// [31:0] output data
72
output
data_out_valid
,
// output data valid
73
output
done
,
// reset by !en, goes high after some delay after flushing
74
output
running
,
// from registering timestamp until done
75
input
clk_flush
,
// other clock to generate synchronized 1-cycle flush_clk output
76
output
flush_clk
// 1-cycle flush output @ clk_flush
77
78
`ifdef
DEBUG_RING
79
,
output
test_lbw
,
80
output
gotLastBlock
,
// last block done - flush the rest bits
81
82
output
[
3
:
0
]
dbg_etrax_dma
83
,
output
dbg_ts_rstb
84
,
output
[
7
:
0
]
dbg_ts_dout
85
`endif
86
);
87
wire
[
26
:
0
]
huffman_do27
;
88
wire
[
4
:
0
]
huffman_dl
;
89
wire
huffman_dv
;
90
wire
huffman_flush
;
91
wire
huffman_last_block
;
92
93
wire
[
31
:
0
]
stuffer_do32
;
94
wire
[
1
:
0
]
stuffer_bytes
;
95
wire
stuffer_dv
;
96
wire
stuffer_flush_out
;
97
98
wire
[
31
:
0
]
escape_do32
;
99
wire
[
1
:
0
]
escape_bytes
;
100
wire
escape_dv
;
101
wire
escape_flush_out
;
102
huffman_snglclk
huffman_snglclk_i
(
103
.
xclk
(
xclk
),
// input
104
.
rst
(~
en_huffman
),
// input
105
.
mclk
(
mclk
),
// input
106
.
tser_we
(
tser_we
),
// input
107
.
tser_a_not_d
(
tser_a_not_d
),
// input
108
.
tser_d
(
tser_d
),
// input[7:0]
109
.
di
(
di
),
// input[15:0]
110
.
ds
(
ds
),
// input
111
.
do27
(
huffman_do27
),
// output[26:0]
112
.
dl
(
huffman_dl
),
// output[4:0]
113
.
dv
(
huffman_dv
),
// output
114
.
flush
(
huffman_flush
),
// output
115
.
last_block
(
huffman_last_block
),
// output
116
`ifdef
DEBUG_RING
117
.
test_lbw
(
test_lbw
),
118
.
gotLastBlock
(
gotLastBlock
),
// last block done - flush the rest bits
119
`else
120
.test_lbw
(),
121
.gotLastBlock
(),
// last block done - flush the rest bits
122
`endif
123
.
clk_flush
(
clk_flush
),
// input
124
.
flush_clk
(
flush_clk
),
// output
125
.
fifo_or_full
()
// output
126
);
127
128
bit_stuffer_27_32
#(
129
.
DIN_LEN
(
27
)
130
)
bit_stuffer_27_32_i
(
131
.
xclk
(
xclk
),
// input
132
.
rst
(~
en_huffman
),
// input
133
.
din
(
huffman_do27
),
// input[26:0]
134
.
dlen
(
huffman_dl
),
// input[4:0]
135
.
ds
(
huffman_dv
),
// input
136
.
flush_in
(
huffman_flush
),
// input
137
.
d_out
(
stuffer_do32
),
// output[31:0]
138
.
bytes_out
(
stuffer_bytes
),
// output[1:0] reg
139
.
dv
(
stuffer_dv
),
// output reg
140
.
flush_out
(
stuffer_flush_out
)
// output reg
141
);
142
143
144
bit_stuffer_escape
bit_stuffer_escape_i
(
145
.
xclk
(
xclk
),
// input
146
.
rst
(~
en_huffman
),
// input
147
.
din
(
stuffer_do32
),
// input[31:0]
148
.
bytes_in
(
stuffer_bytes
),
// input[1:0]
149
.
in_stb
(
stuffer_dv
),
// input
150
.
flush_in
(
stuffer_flush_out
),
// input
151
.
d_out
(
escape_do32
),
// output[31:0] reg
152
.
bytes_out
(
escape_bytes
),
// output[1:0] reg
153
.
dv
(
escape_dv
),
// output reg
154
.
flush_out
(
escape_flush_out
)
// output reg
155
);
156
157
bit_stuffer_metadata
bit_stuffer_metadata_i
(
158
.
mclk
(
mclk
),
// input
159
.
mrst
(
mrst
),
// input
160
.
xclk
(
xclk
),
// input
161
.
xrst
(~
en_stuffer
),
// input
162
.
last_block
(
huffman_last_block
),
// input
163
.
ts_pre_stb
(
ts_pre_stb
),
// input
164
.
ts_data
(
ts_data
),
// input[7:0]
165
.
color_first
(
color_first
),
// input
166
.
din
(
escape_do32
),
// input[31:0]
167
.
bytes_in
(
escape_bytes
),
// input[1:0]
168
.
in_stb
(
escape_dv
),
// input
169
.
flush
(
escape_flush_out
),
// input
170
.
abort
(
abort_stuffer
),
// input
171
.
data_out
(
data_out
),
// output[31:0] reg
172
.
data_out_valid
(
data_out_valid
),
// output reg
173
.
done
(
done
),
// output reg
174
.
running
(
running
)
// output reg
175
`ifdef
DEBUG_RING
176
,.
dbg_etrax_dma
(
dbg_etrax_dma
),
// output[3:0] reg
177
.
dbg_ts_rstb
(
dbg_ts_rstb
),
// output
178
.
dbg_ts_dout
(
dbg_ts_dout
)
// output[7:0]
179
`endif
180
);
181
182
endmodule
183
184
bit_stuffer_escape.1291xclk
1291xclk
Definition:
bit_stuffer_escape.v:42
huffman_stuffer_meta.2617color_first
2617color_first
Definition:
huffman_stuffer_meta.v:69
huffman_snglclk.2560ds
2560ds
Definition:
huffman_snglclk.v:51
huffman_stuffer_meta.2635stuffer_bytes
2635stuffer_byteswire[1:0]
Definition:
huffman_stuffer_meta.v:94
huffman_snglclk.2569flush_clk
2569flush_clk
Definition:
huffman_snglclk.v:62
bit_stuffer_metadata.1323mclk
1323mclk
Definition:
bit_stuffer_metadata.v:44
huffman_snglclk.2566test_lbw
reg 2566test_lbw
Definition:
huffman_snglclk.v:59
huffman_stuffer_meta.2604mclk
2604mclk
Definition:
huffman_stuffer_meta.v:49
bit_stuffer_27_32.1273d_out
[31:0] 1273d_out
Definition:
bit_stuffer_27_32.v:50
huffman_snglclk.2565last_block
2565last_block
Definition:
huffman_snglclk.v:58
bit_stuffer_27_32.1274bytes_out
reg [1:0] 1274bytes_out
Definition:
bit_stuffer_27_32.v:51
huffman_snglclk.2557tser_a_not_d
2557tser_a_not_d
Definition:
huffman_snglclk.v:46
huffman_stuffer_meta.2607en_huffman
2607en_huffman
Definition:
huffman_stuffer_meta.v:52
huffman_stuffer_meta.2622clk_flush
2622clk_flush
Definition:
huffman_stuffer_meta.v:75
huffman_stuffer_meta.2628dbg_ts_dout
[7:0] 2628dbg_ts_dout
Definition:
huffman_stuffer_meta.v:84
bit_stuffer_escape.1296flush_in
1296flush_in
Definition:
bit_stuffer_escape.v:48
bit_stuffer_escape.1293din
[31:0] 1293din
Definition:
bit_stuffer_escape.v:45
bit_stuffer_metadata.1338done
reg 1338done
Definition:
bit_stuffer_metadata.v:66
huffman_stuffer_meta.2611tser_a_not_d
2611tser_a_not_d
Definition:
huffman_stuffer_meta.v:58
huffman_stuffer_meta.2634stuffer_do32
2634stuffer_do32wire[31:0]
Definition:
huffman_stuffer_meta.v:93
bit_stuffer_27_32.1271ds
1271ds
Definition:
bit_stuffer_27_32.v:48
bit_stuffer_metadata.1334flush
1334flush
Definition:
bit_stuffer_metadata.v:60
huffman_stuffer_meta.bit_stuffer_27_32
bit_stuffer_27_32_i bit_stuffer_27_32
Definition:
huffman_stuffer_meta.v:125
huffman_snglclk.2570fifo_or_full
2570fifo_or_full
Definition:
huffman_snglclk.v:63
huffman_stuffer_meta.2610tser_we
2610tser_we
Definition:
huffman_stuffer_meta.v:57
huffman_stuffer_meta.2606xclk
2606xclk
Definition:
huffman_stuffer_meta.v:51
bit_stuffer_escape.1297d_out
reg [31:0] 1297d_out
Definition:
bit_stuffer_escape.v:49
huffman_snglclk.2556tser_we
2556tser_we
Definition:
huffman_snglclk.v:45
huffman_stuffer_meta
Definition:
huffman_stuffer_meta.v:48
huffman_stuffer_meta.2632huffman_flush
2632huffman_flushwire
Definition:
huffman_stuffer_meta.v:90
bit_stuffer_escape.1294bytes_in
[1:0] 1294bytes_in
Definition:
bit_stuffer_escape.v:46
huffman_snglclk.2558tser_d
[ 7:0] 2558tser_d
Definition:
huffman_snglclk.v:47
huffman_stuffer_meta.2612tser_d
[ 7:0] 2612tser_d
Definition:
huffman_stuffer_meta.v:59
huffman_snglclk.2554rst
2554rst
Definition:
huffman_snglclk.v:42
huffman_stuffer_meta.2626dbg_etrax_dma
[3:0] 2626dbg_etrax_dma
Definition:
huffman_stuffer_meta.v:82
bit_stuffer_metadata.1339running
reg 1339running
Definition:
bit_stuffer_metadata.v:67
huffman_stuffer_meta.2623flush_clk
2623flush_clk
Definition:
huffman_stuffer_meta.v:76
bit_stuffer_metadata.1332bytes_in
[1:0] 1332bytes_in
Definition:
bit_stuffer_metadata.v:58
bit_stuffer_metadata.1325xclk
1325xclk
Definition:
bit_stuffer_metadata.v:46
huffman_stuffer_meta.2637stuffer_flush_out
2637stuffer_flush_outwire
Definition:
huffman_stuffer_meta.v:96
huffman_stuffer_meta.huffman_snglclk
huffman_snglclk_i huffman_snglclk
Definition:
huffman_stuffer_meta.v:102
bit_stuffer_escape.1292rst
1292rst
Definition:
bit_stuffer_escape.v:43
huffman_stuffer_meta.2615ts_pre_stb
2615ts_pre_stb
Definition:
huffman_stuffer_meta.v:67
bit_stuffer_escape.1299dv
reg 1299dv
Definition:
bit_stuffer_escape.v:51
huffman_stuffer_meta.2605mrst
2605mrst
Definition:
huffman_stuffer_meta.v:50
huffman_stuffer_meta.2640escape_dv
2640escape_dvwire
Definition:
huffman_stuffer_meta.v:100
bit_stuffer_metadata.1329ts_data
[7:0] 1329ts_data
Definition:
bit_stuffer_metadata.v:54
bit_stuffer_metadata.1340dbg_etrax_dma
reg [3:0] 1340dbg_etrax_dma
Definition:
bit_stuffer_metadata.v:69
huffman_snglclk.2564flush
2564flush
Definition:
huffman_snglclk.v:57
bit_stuffer_metadata.1341dbg_ts_rstb
1341dbg_ts_rstb
Definition:
bit_stuffer_metadata.v:70
huffman_stuffer_meta.bit_stuffer_metadata
bit_stuffer_metadata_i bit_stuffer_metadata
Definition:
huffman_stuffer_meta.v:154
bit_stuffer_27_32.1275dv
reg 1275dv
Definition:
bit_stuffer_27_32.v:52
bit_stuffer_metadata.1342dbg_ts_dout
[7:0] 1342dbg_ts_dout
Definition:
bit_stuffer_metadata.v:71
huffman_stuffer_meta.2613di
[15:0] 2613di
Definition:
huffman_stuffer_meta.v:62
huffman_snglclk.2553xclk
2553xclk
Definition:
huffman_snglclk.v:41
huffman_stuffer_meta.2630huffman_dl
2630huffman_dlwire[4:0]
Definition:
huffman_stuffer_meta.v:88
bit_stuffer_27_32.1270dlen
[4:0] 1270dlen
Definition:
bit_stuffer_27_32.v:47
bit_stuffer_27_32.1269din
[DIN_LEN-1:0] 1269din
Definition:
bit_stuffer_27_32.v:46
huffman_stuffer_meta.bit_stuffer_escape
bit_stuffer_escape_i bit_stuffer_escape
Definition:
huffman_stuffer_meta.v:141
huffman_stuffer_meta.2641escape_flush_out
2641escape_flush_outwire
Definition:
huffman_stuffer_meta.v:101
huffman_stuffer_meta.2638escape_do32
2638escape_do32wire[31:0]
Definition:
huffman_stuffer_meta.v:98
bit_stuffer_metadata.1335abort
1335abort
Definition:
bit_stuffer_metadata.v:61
huffman_snglclk.2568clk_flush
2568clk_flush
Definition:
huffman_snglclk.v:61
bit_stuffer_metadata.1326xrst
1326xrst
Definition:
bit_stuffer_metadata.v:47
bit_stuffer_27_32.1268rst
1268rst
Definition:
bit_stuffer_27_32.v:45
bit_stuffer_metadata.1336data_out
reg [31:0] 1336data_out
Definition:
bit_stuffer_metadata.v:64
bit_stuffer_escape.1298bytes_out
reg [1:0] 1298bytes_out
Definition:
bit_stuffer_escape.v:50
huffman_stuffer_meta.2627dbg_ts_rstb
2627dbg_ts_rstb
Definition:
huffman_stuffer_meta.v:83
huffman_stuffer_meta.2614ds
2614ds
Definition:
huffman_stuffer_meta.v:63
bit_stuffer_metadata.1330color_first
1330color_first
Definition:
bit_stuffer_metadata.v:55
bit_stuffer_metadata.1331din
[31:0] 1331din
Definition:
bit_stuffer_metadata.v:57
huffman_stuffer_meta.2625gotLastBlock
2625gotLastBlock
Definition:
huffman_stuffer_meta.v:80
huffman_snglclk.2567gotLastBlock
2567gotLastBlock
Definition:
huffman_snglclk.v:60
bit_stuffer_metadata.1328ts_pre_stb
1328ts_pre_stb
Definition:
bit_stuffer_metadata.v:53
huffman_stuffer_meta.2609abort_stuffer
2609abort_stuffer
Definition:
huffman_stuffer_meta.v:54
bit_stuffer_27_32.1272flush_in
1272flush_in
Definition:
bit_stuffer_27_32.v:49
huffman_stuffer_meta.2624test_lbw
2624test_lbw
Definition:
huffman_stuffer_meta.v:79
huffman_snglclk.2562dl
[ 4:0] 2562dl
Definition:
huffman_snglclk.v:54
bit_stuffer_metadata.1324mrst
1324mrst
Definition:
bit_stuffer_metadata.v:45
huffman_stuffer_meta.2608en_stuffer
2608en_stuffer
Definition:
huffman_stuffer_meta.v:53
huffman_stuffer_meta.2618data_out
[31:0] 2618data_out
Definition:
huffman_stuffer_meta.v:71
huffman_stuffer_meta.2639escape_bytes
2639escape_byteswire[1:0]
Definition:
huffman_stuffer_meta.v:99
huffman_stuffer_meta.2629huffman_do27
2629huffman_do27wire[26:0]
Definition:
huffman_stuffer_meta.v:87
bit_stuffer_escape.1295in_stb
1295in_stb
Definition:
bit_stuffer_escape.v:47
huffman_snglclk.2555mclk
2555mclk
Definition:
huffman_snglclk.v:44
huffman_snglclk.2563dv
2563dv
Definition:
huffman_snglclk.v:55
bit_stuffer_27_32.1267xclk
1267xclk
Definition:
bit_stuffer_27_32.v:44
huffman_stuffer_meta.2616ts_data
[7:0] 2616ts_data
Definition:
huffman_stuffer_meta.v:68
huffman_stuffer_meta.2620done
2620done
Definition:
huffman_stuffer_meta.v:73
bit_stuffer_metadata.1333in_stb
1333in_stb
Definition:
bit_stuffer_metadata.v:59
huffman_snglclk.2559di
[15:0] 2559di
Definition:
huffman_snglclk.v:50
huffman_stuffer_meta.2633huffman_last_block
2633huffman_last_blockwire
Definition:
huffman_stuffer_meta.v:91
huffman_stuffer_meta.2621running
2621running
Definition:
huffman_stuffer_meta.v:74
bit_stuffer_escape.1300flush_out
reg 1300flush_out
Definition:
bit_stuffer_escape.v:52
huffman_snglclk.2561do27
[26:0] 2561do27
Definition:
huffman_snglclk.v:53
huffman_stuffer_meta.2619data_out_valid
2619data_out_valid
Definition:
huffman_stuffer_meta.v:72
bit_stuffer_metadata.1327last_block
1327last_block
Definition:
bit_stuffer_metadata.v:48
bit_stuffer_27_32.1276flush_out
reg 1276flush_out
Definition:
bit_stuffer_27_32.v:53
huffman_stuffer_meta.2636stuffer_dv
2636stuffer_dvwire
Definition:
huffman_stuffer_meta.v:95
huffman_stuffer_meta.2631huffman_dv
2631huffman_dvwire
Definition:
huffman_stuffer_meta.v:89
bit_stuffer_metadata.1337data_out_valid
reg 1337data_out_valid
Definition:
bit_stuffer_metadata.v:65
compressor_jp
huffman_stuffer_meta.v
Generated by
1.8.12