mirror of https://github.com/YosysHQ/yosys.git
techmap: add TCL test for Han-Carlson adder
This commit is contained in:
parent
289673a807
commit
1a562f9605
|
@ -0,0 +1,2 @@
|
||||||
|
i
|
||||||
|
j
|
|
@ -0,0 +1,14 @@
|
||||||
|
yosys -import
|
||||||
|
|
||||||
|
read_verilog +/choices/han-carlson.v
|
||||||
|
read_verilog lcu_refined.v
|
||||||
|
design -save init
|
||||||
|
|
||||||
|
for {set i 1} {$i <= 16} {incr i} {
|
||||||
|
design -load init
|
||||||
|
chparam -set WIDTH $i
|
||||||
|
yosys proc
|
||||||
|
equiv_make -blacklist han-carlson.nomatch lcu _85_lcu_han_carlson equiv
|
||||||
|
equiv_simple equiv
|
||||||
|
equiv_status -assert equiv
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
// Copied from techlibs/common/simlib.v
|
||||||
|
// with this condition removed: (^{P, G, CI} !== 1'bx)
|
||||||
|
module lcu (P, G, CI, CO);
|
||||||
|
|
||||||
|
parameter WIDTH = 2;
|
||||||
|
|
||||||
|
input [WIDTH-1:0] P; // Propagate
|
||||||
|
input [WIDTH-1:0] G; // Generate
|
||||||
|
input CI; // Carry-in
|
||||||
|
|
||||||
|
output reg [WIDTH-1:0] CO; // Carry-out
|
||||||
|
|
||||||
|
integer i;
|
||||||
|
always @* begin
|
||||||
|
CO[0] = G[0] || (P[0] && CI);
|
||||||
|
for (i = 1; i < WIDTH; i = i+1)
|
||||||
|
CO[i] = G[i] || (P[i] && CO[i-1]);
|
||||||
|
end
|
||||||
|
|
||||||
|
endmodule
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -eu
|
set -eu
|
||||||
source ../gen-tests-makefile.sh
|
source ../gen-tests-makefile.sh
|
||||||
run_tests --yosys-scripts --bash --yosys-args "-e 'select out of bounds'"
|
run_tests --yosys-scripts --tcl-scripts --bash --yosys-args "-e 'select out of bounds'"
|
||||||
|
|
Loading…
Reference in New Issue