aboutsummaryrefslogtreecommitdiffstats
path: root/tests/techmap/cellname.ys
diff options
context:
space:
mode:
authorMarcelina Koƛcielnicka <mwk@0x04.net>2020-07-21 15:00:54 +0200
committerMarcelina Koƛcielnicka <mwk@0x04.net>2020-07-21 15:00:54 +0200
commitdc07ae96774c649d23ea787e07d618670c7e93bf (patch)
tree04169026a40d40ca620dfa1ffc0ae6a4c04f7e8c /tests/techmap/cellname.ys
parent57af8499dfc3c35d7327107ad30c1124c646fefd (diff)
downloadyosys-dc07ae96774c649d23ea787e07d618670c7e93bf.tar.gz
yosys-dc07ae96774c649d23ea787e07d618670c7e93bf.tar.bz2
yosys-dc07ae96774c649d23ea787e07d618670c7e93bf.zip
techmap: Add _TECHMAP_CELLNAME_ special parameter.
This parameter will resolve to the name of the cell being mapped. The first user of this parameter will be synth_intel_alm's Quartus output, which requires a unique (and preferably descriptive) name passed as a cell parameter for the memory cells.
Diffstat (limited to 'tests/techmap/cellname.ys')
-rw-r--r--tests/techmap/cellname.ys41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/techmap/cellname.ys b/tests/techmap/cellname.ys
new file mode 100644
index 000000000..2edd6a9fd
--- /dev/null
+++ b/tests/techmap/cellname.ys
@@ -0,0 +1,41 @@
+read_verilog << EOT
+
+module sub (input i, output o);
+parameter _TECHMAP_CELLNAME_ = "";
+namedsub #(.name(_TECHMAP_CELLNAME_)) _TECHMAP_REPLACE_ (i, o);
+endmodule
+
+EOT
+
+design -stash map
+
+read_verilog << EOT
+
+(* blackbox *)
+module sub (input i, output o);
+endmodule
+
+(* blackbox *)
+module namedsub (input i, output o);
+parameter name = "";
+endmodule
+
+module top(input [3:0] i, output [3:0] o);
+
+sub s1 (i[0], o[0]);
+sub subsubsub (i[1], o[1]);
+sub s2 (i[2], o[2]);
+sub xxx (i[3], o[3]);
+
+endmodule
+
+EOT
+
+techmap -map %map
+
+select -assert-count 4 t:namedsub
+select -assert-count 0 t:sub
+select -assert-count 1 t:namedsub r:name=s1 %i
+select -assert-count 1 t:namedsub r:name=subsubsub %i
+select -assert-count 1 t:namedsub r:name=s2 %i
+select -assert-count 1 t:namedsub r:name=xxx %i