1
1
yosys -import
2
-
2
+ # puts "Files in here: [glob -nocomplain *]"
3
3
plugin -i parmys
4
- plugin -i slang
5
- yosys -import
6
4
7
5
read_verilog -nomem2reg +/parmys/vtr_primitives.v
8
6
setattr -mod -set keep_hierarchy 1 single_port_ram
9
7
setattr -mod -set keep_hierarchy 1 dual_port_ram
8
+ setattr -mod -set keep 1 dual_port_ram
9
+
10
+ plugin -i slang
11
+ yosys -import
10
12
11
13
# synlig path error handling
12
14
if {[catch {set synlig $::env(synlig_exe_path) } err]} {
@@ -25,10 +27,6 @@ if {[catch {set synlig $::env(synlig_exe_path)} err]} {
25
27
# output file: ZZZ
26
28
27
29
parmys_arch -a QQQ
28
- if {$env(PARSER) == " slang" } {
29
- puts " Using yosys-slang read_slang command"
30
- read_slang XXX
31
- }
32
30
33
31
# if {$env(PARSER) == "surelog" } {
34
32
# puts "Using Synlig read_uhdm command"
@@ -37,8 +35,35 @@ if {$env(PARSER) == "slang" } {
37
35
# } elseif {$env(PARSER) == "system-verilog" } {
38
36
# puts "Using Synlig read_systemverilog "
39
37
# exec $synlig -p "read_systemverilog XXX"
40
- # }
41
- elseif {$env(PARSER) == " default" } {
38
+ # }
39
+
40
+ if {$env(PARSER) == " slang" } {
41
+ # Create a file list containing the name(s) of file(s)
42
+ # to read together with read_slang
43
+ set sv_files {}
44
+ set v_files {}
45
+ set readfile [file join [pwd ] " filelist.txt" ]
46
+ set fh [open $readfile " w" ]
47
+ foreach f {XXX} {
48
+ set ext [string tolower [file extension $f ]]
49
+ switch -- $ext {
50
+ .sv {
51
+ lappend $sv_files $f
52
+ puts $fh $f
53
+ }
54
+ .v {
55
+ error " Use default parser to parse .v files."
56
+ }
57
+ }
58
+ }
59
+ close $fh
60
+ if {[llength $sv_files ] > 0} {
61
+ # puts "Using Yosys read_slang command"
62
+ # read_slang -C $readfile
63
+ }
64
+ puts " Using Yosys read_slang command"
65
+ read_slang -C $readfile
66
+ } elseif {$env(PARSER) == " default" } {
42
67
puts " Using Yosys read_verilog command"
43
68
read_verilog -sv -nolatches XXX
44
69
} else {
@@ -81,7 +106,8 @@ opt -full
81
106
if {$env(PARSER) == " default" || $env(PARSER) == " slang" } {
82
107
# For Verilog, use -nopass for a simpler, faster flow
83
108
parmys -a QQQ -nopass -c CCC YYY
84
- } #elseif {$env(PARSER) == " slang" } {
109
+ }
110
+ # elseif {$env(PARSER) == "slang"} {
85
111
# For Slang, run additional passes to handle complexity
86
112
# parmys -a QQQ -c CCC YYY
87
113
# }
0 commit comments