Skip to content

Commit efb1d87

Browse files
committed
Set up yosys-slang to be used as a frontend for Yosys
1 parent 4f8abac commit efb1d87

File tree

5 files changed

+29
-20
lines changed

5 files changed

+29
-20
lines changed

vtr_flow/misc/yosys/synthesis.tcl

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
yosys -import
22

33
plugin -i parmys
4+
plugin -i slang
45
yosys -import
56

67
read_verilog -nomem2reg +/parmys/vtr_primitives.v
@@ -24,17 +25,20 @@ if {[catch {set synlig $::env(synlig_exe_path)} err]} {
2425
# output file: ZZZ
2526

2627
parmys_arch -a QQQ
28+
if {$env(PARSER) == "slang" } {
29+
puts "Using yosys-slang read_slang command"
30+
read_slang XXX
31+
}
2732

28-
if {$env(PARSER) == "surelog" } {
29-
puts "Using Synlig read_uhdm command"
30-
31-
exec $synlig -p "read_uhdm XXX"
33+
#if {$env(PARSER) == "surelog" } {
34+
# puts "Using Synlig read_uhdm command"
35+
# exec $synlig -p "read_uhdm XXX"
3236

33-
} elseif {$env(PARSER) == "system-verilog" } {
34-
puts "Using Synlig read_systemverilog "
35-
exec $synlig -p "read_systemverilog XXX"
36-
37-
} elseif {$env(PARSER) == "default" } {
37+
#} elseif {$env(PARSER) == "system-verilog" } {
38+
# puts "Using Synlig read_systemverilog "
39+
# exec $synlig -p "read_systemverilog XXX"
40+
# }
41+
elseif {$env(PARSER) == "default" } {
3842
puts "Using Yosys read_verilog command"
3943
read_verilog -sv -nolatches XXX
4044
} else {
@@ -74,13 +78,17 @@ techmap -map +/parmys/aldffe2dff.v
7478
opt -full
7579

7680
# Separate options for Parmys execution (Verilog or SystemVerilog)
77-
if {$env(PARSER) == "default"} {
81+
if {$env(PARSER) == "default" || $env(PARSER) == "slang"} {
7882
# For Verilog, use -nopass for a simpler, faster flow
7983
parmys -a QQQ -nopass -c CCC YYY
80-
} elseif {$env(PARSER) == "system-verilog" || $env(PARSER) == "surelog"} {
81-
# For Synlig SystemVerilog, run additional passes to handle complexity
82-
parmys -a QQQ -c CCC YYY
83-
}
84+
} #elseif {$env(PARSER) == "slang"} {
85+
# For Slang, run additional passes to handle complexity
86+
# parmys -a QQQ -c CCC YYY
87+
#}
88+
#elseif {$env(PARSER) == "system-verilog" || $env(PARSER) == "surelog"} {
89+
# # For Synlig SystemVerilog, run additional passes to handle complexity
90+
# parmys -a QQQ -c CCC YYY
91+
#}
8492

8593
opt -full
8694

@@ -95,4 +103,4 @@ stat
95103

96104
hierarchy -check -auto-top -purge_lib
97105

98-
write_blif -true + vcc -false + gnd -undef + unconn -blackbox ZZZ
106+
write_blif -true + vcc -false + gnd -undef + unconn -blackbox ZZZ

vtr_flow/scripts/python_libs/vtr/parmys/parmys.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
".ys": "RTLIL",
2323
}
2424

25-
YOSYS_PARSERS = ["default", "surelog", "system-verilog"]
25+
#YOSYS_PARSERS = ["default", "surelog", "system-verilog"]
26+
YOSYS_PARSERS = ["default", "slang"]
2627

2728

2829
def create_circuits_list(main_circuit, include_files):
@@ -246,7 +247,7 @@ def run(
246247
del parmys_args["parser"]
247248
else:
248249
raise vtr.VtrError(
249-
"Invalid parser is specified for Yosys, available parsers are [{}]".format(
250+
parmys_args["parser"] + "Invalid parser is specified for Yosys, available parsers are [{}]".format(
250251
" ".join(str(x) for x in YOSYS_PARSERS)
251252
)
252253
)

vtr_flow/tasks/regression_tests/vtr_reg_system_verilog/f4pga_button_controller/config/config.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ qor_parse_file=qor_standard.txt
3535
pass_requirements_file=pass_requirements.txt
3636

3737
#Script parameters
38-
script_params=-track_memory_usage -crit_path_router_iterations 100 -parser system-verilog
38+
script_params=-track_memory_usage -crit_path_router_iterations 100 -parser slang

vtr_flow/tasks/regression_tests/vtr_reg_system_verilog/f4pga_pulse_width_led/config/config.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ qor_parse_file=qor_standard.txt
3232
pass_requirements_file=pass_requirements.txt
3333

3434
#Script parameters
35-
script_params=-track_memory_usage -crit_path_router_iterations 100 -parser system-verilog
35+
script_params=-track_memory_usage -crit_path_router_iterations 100 -parser slang

vtr_flow/tasks/regression_tests/vtr_reg_system_verilog/f4pga_timer/config/config.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ qor_parse_file=qor_standard.txt
3434
pass_requirements_file=pass_requirements.txt
3535

3636
#Script parameters
37-
script_params=-track_memory_usage -crit_path_router_iterations 100 -parser system-verilog
37+
script_params=-track_memory_usage -crit_path_router_iterations 100 -parser slang

0 commit comments

Comments
 (0)