Skip to content

Commit 80b5bc7

Browse files
committed
modules/zstd/rle_block_decoder: Add benchmarking rules
Internal-tag: [#53329] Signed-off-by: Pawel Czarnecki <[email protected]>
1 parent c72e115 commit 80b5bc7

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

xls/modules/zstd/BUILD

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,3 +287,64 @@ xls_dslx_test(
287287
name = "rle_block_dec_dslx_test",
288288
library = ":rle_block_dec_dslx",
289289
)
290+
291+
xls_dslx_verilog(
292+
name = "rle_block_dec_verilog",
293+
codegen_args = {
294+
"module_name": "RleBlockDecoder",
295+
"delay_model": "asap7",
296+
"pipeline_stages": "3",
297+
"reset": "rst",
298+
"use_system_verilog": "false",
299+
},
300+
dslx_top = "RleBlockDecoder",
301+
library = ":rle_block_dec_dslx",
302+
# TODO: 2024-01-15: Workaround for https://github.com/google/xls/issues/869
303+
# Force proc inlining and set last internal proc as top proc for IR optimization
304+
opt_ir_args = {
305+
"inline_procs": "true",
306+
"top": "__rle_block_dec__RleBlockDecoder__BatchPacker_0_next",
307+
},
308+
verilog_file = "rle_block_dec.v",
309+
)
310+
311+
xls_benchmark_ir(
312+
name = "rle_block_dec_opt_ir_benchmark",
313+
src = ":rle_block_dec_verilog.opt.ir",
314+
benchmark_ir_args = {
315+
"pipeline_stages": "3",
316+
"delay_model": "asap7",
317+
},
318+
)
319+
320+
verilog_library(
321+
name = "rle_block_dec_verilog_lib",
322+
srcs = [
323+
":rle_block_dec.v",
324+
],
325+
)
326+
327+
synthesize_rtl(
328+
name = "rle_block_dec_synth_asap7",
329+
standard_cells = "@org_theopenroadproject_asap7sc7p5t_28//:asap7-sc7p5t_rev28_rvt",
330+
top_module = "RleBlockDecoder",
331+
deps = [
332+
":rle_block_dec_verilog_lib",
333+
],
334+
)
335+
336+
benchmark_synth(
337+
name = "rle_block_dec_benchmark_synth",
338+
synth_target = ":rle_block_dec_synth_asap7",
339+
)
340+
341+
place_and_route(
342+
name = "rle_block_dec_place_and_route",
343+
clock_period = "750",
344+
core_padding_microns = 2,
345+
min_pin_distance = "0.5",
346+
placement_density = "0.30",
347+
skip_detailed_routing = True,
348+
synthesized_rtl = ":rle_block_dec_synth_asap7",
349+
target_die_utilization_percentage = "10",
350+
)

0 commit comments

Comments
 (0)