@@ -53,3 +53,64 @@ xls_dslx_test(
53
53
library = ":window_buffer_dslx" ,
54
54
)
55
55
56
+ xls_dslx_verilog (
57
+ name = "window_buffer_verilog" ,
58
+ codegen_args = {
59
+ "module_name" : "WindowBuffer64" ,
60
+ "delay_model" : "asap7" ,
61
+ "pipeline_stages" : "2" ,
62
+ "reset" : "rst" ,
63
+ "use_system_verilog" : "false" ,
64
+ },
65
+ dslx_top = "WindowBuffer64" ,
66
+ library = ":window_buffer_dslx" ,
67
+ # TODO: 2024-01-25: Workaround for https://github.com/google/xls/issues/869
68
+ # Force proc inlining and set last internal proc as top proc for IR optimization
69
+ opt_ir_args = {
70
+ "inline_procs" : "true" ,
71
+ "top" : "__window_buffer__WindowBuffer64__WindowBuffer_0__64_32_48_next" ,
72
+ },
73
+ verilog_file = "window_buffer.v" ,
74
+ )
75
+
76
+ xls_benchmark_ir (
77
+ name = "window_buffer_opt_ir_benchmark" ,
78
+ src = ":window_buffer_verilog.opt.ir" ,
79
+ benchmark_ir_args = {
80
+ "pipeline_stages" : "2" ,
81
+ "delay_model" : "asap7" ,
82
+ },
83
+ )
84
+
85
+ verilog_library (
86
+ name = "window_buffer_verilog_lib" ,
87
+ srcs = [
88
+ ":window_buffer.v" ,
89
+ ],
90
+ )
91
+
92
+ synthesize_rtl (
93
+ name = "window_buffer_synth_asap7" ,
94
+ standard_cells = "@org_theopenroadproject_asap7sc7p5t_28//:asap7-sc7p5t_rev28_rvt" ,
95
+ top_module = "WindowBuffer64" ,
96
+ deps = [
97
+ ":window_buffer_verilog_lib" ,
98
+ ],
99
+ )
100
+
101
+ benchmark_synth (
102
+ name = "window_buffer_benchmark_synth" ,
103
+ synth_target = ":window_buffer_synth_asap7" ,
104
+ )
105
+
106
+ place_and_route (
107
+ name = "window_buffer_place_and_route" ,
108
+ clock_period = "750" ,
109
+ core_padding_microns = 2 ,
110
+ min_pin_distance = "0.5" ,
111
+ placement_density = "0.30" ,
112
+ skip_detailed_routing = True ,
113
+ synthesized_rtl = ":window_buffer_synth_asap7" ,
114
+ target_die_utilization_percentage = "10" ,
115
+ )
116
+
0 commit comments