@@ -287,3 +287,64 @@ xls_dslx_test(
287
287
name = "rle_block_dec_dslx_test" ,
288
288
library = ":rle_block_dec_dslx" ,
289
289
)
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