diff options
author | Clifford Wolf <clifford@clifford.at> | 2019-08-16 13:26:36 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2019-08-16 13:26:36 +0200 |
commit | c710df181c2e9931ce464ea60568c864b7195e8b (patch) | |
tree | 5f7ae08ea90c374688f46e36e692db665a21b475 /passes/pmgen/test_pmgen.pmg | |
parent | 4a57b7e1abe148b36827a393fd7fe62e46c2b1a7 (diff) | |
download | yosys-c710df181c2e9931ce464ea60568c864b7195e8b.tar.gz yosys-c710df181c2e9931ce464ea60568c864b7195e8b.tar.bz2 yosys-c710df181c2e9931ce464ea60568c864b7195e8b.zip |
Add pmgen "generate" feature
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'passes/pmgen/test_pmgen.pmg')
-rw-r--r-- | passes/pmgen/test_pmgen.pmg | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/passes/pmgen/test_pmgen.pmg b/passes/pmgen/test_pmgen.pmg index ccb37e553..077d337d6 100644 --- a/passes/pmgen/test_pmgen.pmg +++ b/passes/pmgen/test_pmgen.pmg @@ -13,6 +13,22 @@ endcode match first select first->type.in($_AND_, $_OR_, $_XOR_) filter !non_first_cells.count(first) +generate + SigSpec A = module->addWire(NEW_ID); + SigSpec B = module->addWire(NEW_ID); + SigSpec Y = module->addWire(NEW_ID); + switch (rng(3)) + { + case 0: + module->addAndGate(NEW_ID, A, B, Y); + break; + case 1: + module->addOrGate(NEW_ID, A, B, Y); + break; + case 2: + module->addXorGate(NEW_ID, A, B, Y); + break; + } endmatch code @@ -64,6 +80,12 @@ match next select next->type.in($_AND_, $_OR_, $_XOR_) index <IdString> next->type === chain.back().first->type index <SigSpec> port(next, \Y) === port(chain.back().first, chain.back().second) +generate 50 + SigSpec A = module->addWire(NEW_ID); + SigSpec B = module->addWire(NEW_ID); + SigSpec Y = port(chain.back().first, chain.back().second); + Cell *c = module->addAndGate(NEW_ID, A, B, Y); + c->type = chain.back().first->type; endmatch code |