generic: Add synth_generic.tcl

Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
David Shah 2019-04-01 18:02:08 +01:00
parent f88ddf85b2
commit 99c3713293
3 changed files with 34 additions and 3 deletions

9
generic/synth/blink.v Normal file
View File

@ -0,0 +1,9 @@
module top(input clk, output reg [7:0] leds);
reg [25:0] ctr;
always @(posedge clk)
ctr <= ctr + 1'b1;
assign leds = ctr[25:18];
endmodule

View File

@ -7,6 +7,4 @@ module \$lut (A, Y);
LUT #(.K(`LUT_K), .INIT(LUT)) _TECHMAP_REPLACE_ (.I(A), .Q(Y));
endmodule
module \$_DFF_N_ (input D, C, output Q); DFF _TECHMAP_REPLACE_ (.D(D), .Q(Q), .CLK(C)); endmodule
module \$_DFF_P_ (input D, C, output Q); DFF _TECHMAP_REPLACE_ (.D(D), .Q(Q), .CLK(!C)); endmodule
module \$_DFF_P_ (input D, C, output Q); DFF _TECHMAP_REPLACE_ (.D(D), .Q(Q), .CLK(C)); endmodule

View File

@ -0,0 +1,24 @@
# Usage
# tcl synth_generic.tcl {K} {out.json}
set LUT_K 4
if {$argc > 0} { set LUT_K [lindex $argv 0] }
yosys read_verilog -lib [file dirname [file normalize $argv0]]/prims.v
yosys hierarchy -check
yosys proc
yosys flatten
yosys tribuf -logic
yosys deminout
yosys synth -run coarse
yosys memory_map
yosys opt -full
yosys techmap -map +/techmap.v
yosys opt -fast
yosys abc -lut $LUT_K
yosys clean
yosys techmap -D LUT_K=$LUT_K -map [file dirname [file normalize $argv0]]/cells_map.v
yosys clean
yosys hierarchy -check
yosys stat
if {$argc > 1} { yosys write_json [lindex $argv 1] }