3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-06-09 23:53:26 +00:00

Cleanup ecp5 boxes

This commit is contained in:
Eddie Hung 2019-12-31 18:29:29 -08:00
parent 96db05aaef
commit b2046a2114
4 changed files with 31 additions and 35 deletions

View file

@ -1,43 +1,36 @@
# NB: Inputs/Outputs must be ordered alphabetically # NB: Box inputs/outputs must each be in the same order
# (with exceptions for carry in/out) # as their corresponding module definition
# (with exceptions detailed below)
# Box 1 : CCU2C (2xCARRY + 2xLUT4) # Box 1 : CCU2C (2xCARRY + 2xLUT4)
# Outputs: S0, S1, COUT # (Exception: carry chain input/output must be the
# (NB: carry chain input/output must be last # last input and output and the entire bus has been
# input/output and bus has been moved # moved there overriding the otherwise
# there overriding the otherwise
# alphabetical ordering) # alphabetical ordering)
# name ID w/b ins outs # name ID w/b ins outs
CCU2C 1 1 9 3 CCU2C 1 1 9 3
#A0 B0 C0 D0 A1 B1 C1 D1 CIN
#A0 A1 B0 B1 C0 C1 D0 D1 CIN 379 379 275 141 - - - - 257 # S0
379 - 379 - 275 - 141 - 257 630 630 526 392 379 379 275 141 273 # S1
630 379 630 379 526 275 392 141 273 516 516 412 278 516 516 412 278 43 # COUT
516 516 516 516 412 412 278 278 43
# Box 2 : TRELLIS_DPR16X4_COMB (16x4 dist ram) # Box 2 : TRELLIS_DPR16X4_COMB (16x4 dist ram)
# Outputs: DO0, DO1, DO2, DO3
# name ID w/b ins outs # name ID w/b ins outs
$__ABC9_DPR16X4_COMB 2 0 8 4 $__ABC9_DPR16X4_COMB 2 0 8 4
#$D0 $D1 $D2 $D3 RAD0 RAD1 RAD2 RAD3
#A0 A1 A2 A3 RAD0 RAD1 RAD2 RAD3 0 0 0 0 141 379 275 379 # DO0
0 0 0 0 141 379 275 379 0 0 0 0 141 379 275 379 # DO1
0 0 0 0 141 379 275 379 0 0 0 0 141 379 275 379 # DO2
0 0 0 0 141 379 275 379 0 0 0 0 141 379 275 379 # DO3
0 0 0 0 141 379 275 379
# Box 3 : PFUMX (MUX2) # Box 3 : PFUMX (MUX2)
# Outputs: Z
# name ID w/b ins outs # name ID w/b ins outs
PFUMX 3 1 3 1 PFUMX 3 1 3 1
#ALUT BLUT C0 #ALUT BLUT C0
98 98 151 98 98 151 # Z
# Box 4 : L6MUX21 (MUX2) # Box 4 : L6MUX21 (MUX2)
# Outputs: Z
# name ID w/b ins outs # name ID w/b ins outs
L6MUX21 4 1 3 1 L6MUX21 4 1 3 1
#D0 D1 SD #D0 D1 SD
140 141 148 140 141 148 # Z

View file

@ -1,24 +1,27 @@
// --------------------------------------- // ---------------------------------------
// Attach a (combinatorial) black-box onto the output
// of this LUTRAM primitive to capture its
// asynchronous read behaviour
module TRELLIS_DPR16X4 ( module TRELLIS_DPR16X4 (
input [3:0] DI, (* techmap_autopurge *) input [3:0] DI,
input [3:0] WAD, (* techmap_autopurge *) input [3:0] WAD,
input WRE, (* techmap_autopurge *) input WRE,
input WCK, (* techmap_autopurge *) input WCK,
input [3:0] RAD, (* techmap_autopurge *) input [3:0] RAD,
output [3:0] DO output [3:0] DO
); );
parameter WCKMUX = "WCK"; parameter WCKMUX = "WCK";
parameter WREMUX = "WRE"; parameter WREMUX = "WRE";
parameter [63:0] INITVAL = 64'h0000000000000000; parameter [63:0] INITVAL = 64'h0000000000000000;
wire [3:0] \$DO ; wire [3:0] $DO;
TRELLIS_DPR16X4 #( TRELLIS_DPR16X4 #(
.WCKMUX(WCKMUX), .WREMUX(WREMUX), .INITVAL(INITVAL) .WCKMUX(WCKMUX), .WREMUX(WREMUX), .INITVAL(INITVAL)
) _TECHMAP_REPLACE_ ( ) _TECHMAP_REPLACE_ (
.DI(DI), .WAD(WAD), .WRE(WRE), .WCK(WCK), .DI(DI), .WAD(WAD), .WRE(WRE), .WCK(WCK),
.RAD(RAD), .DO(\$DO ) .RAD(RAD), .DO($DO)
); );
\$__ABC9_DPR16X4_COMB do (.A(\$DO ), .S(RAD), .Y(DO)); $__ABC9_DPR16X4_COMB do (.$DO($DO), .RAD(RAD), .DO(DO));
endmodule endmodule

View file

@ -1,5 +1,5 @@
// --------------------------------------- // ---------------------------------------
(* abc9_box_id=2 *) (* abc9_box_id=2 *)
module \$__ABC9_DPR16X4_COMB (input [3:0] A, S, output [3:0] Y); module \$__ABC9_DPR16X4_COMB (input [3:0] $DO, RAD, output [3:0] DO);
endmodule endmodule

View file

@ -1,5 +1,5 @@
// --------------------------------------- // ---------------------------------------
module \$__ABC9_DPR16X4_COMB (input [3:0] A, S, output [3:0] Y); module \$__ABC9_DPR16X4_COMB (input [3:0] $DO, RAD, output [3:0] DO);
assign Y = A; assign DO = $DO;
endmodule endmodule