mirror of https://github.com/YosysHQ/yosys.git
Uncomment negative setup times; clamp to zero for connectivity
This commit is contained in:
parent
c41c180f68
commit
6c66030dfb
|
@ -36,6 +36,9 @@ module IBUF(
|
||||||
parameter IOSTANDARD = "default";
|
parameter IOSTANDARD = "default";
|
||||||
parameter IBUF_LOW_PWR = 0;
|
parameter IBUF_LOW_PWR = 0;
|
||||||
assign O = I;
|
assign O = I;
|
||||||
|
specify
|
||||||
|
(I => O) = 0;
|
||||||
|
endspecify
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module IBUFG(
|
module IBUFG(
|
||||||
|
@ -57,6 +60,9 @@ module OBUF(
|
||||||
parameter DRIVE = 12;
|
parameter DRIVE = 12;
|
||||||
parameter SLEW = "SLOW";
|
parameter SLEW = "SLOW";
|
||||||
assign O = I;
|
assign O = I;
|
||||||
|
specify
|
||||||
|
(I => O) = 0;
|
||||||
|
endspecify
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module IOBUF (
|
module IOBUF (
|
||||||
|
@ -72,6 +78,10 @@ module IOBUF (
|
||||||
parameter SLEW = "SLOW";
|
parameter SLEW = "SLOW";
|
||||||
assign IO = T ? 1'bz : I;
|
assign IO = T ? 1'bz : I;
|
||||||
assign O = IO;
|
assign O = IO;
|
||||||
|
specify
|
||||||
|
(I => IO) = 0;
|
||||||
|
(IO => O) = 0;
|
||||||
|
endspecify
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module OBUFT (
|
module OBUFT (
|
||||||
|
@ -85,14 +95,20 @@ module OBUFT (
|
||||||
parameter IOSTANDARD = "DEFAULT";
|
parameter IOSTANDARD = "DEFAULT";
|
||||||
parameter SLEW = "SLOW";
|
parameter SLEW = "SLOW";
|
||||||
assign O = T ? 1'bz : I;
|
assign O = T ? 1'bz : I;
|
||||||
|
specify
|
||||||
|
(I => O) = 0;
|
||||||
|
endspecify
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module BUFG(
|
module BUFG(
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O,
|
output O,
|
||||||
input I);
|
input I);
|
||||||
|
|
||||||
assign O = I;
|
assign O = I;
|
||||||
|
specify
|
||||||
|
// https://github.com/SymbiFlow/prjxray-db/blob/4bc6385ab300b1819848371f508185f57b649a0e/artix7/timings/CLK_BUFG_TOP_R.sdf#L11
|
||||||
|
(I => O) = 96;
|
||||||
|
endspecify
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module BUFGCTRL(
|
module BUFGCTRL(
|
||||||
|
@ -499,8 +515,8 @@ module FDRE (
|
||||||
endgenerate
|
endgenerate
|
||||||
specify
|
specify
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
||||||
//$setup(D , posedge C &&& CE && !IS_C_INVERTED , -46); // Negative times not currently supported
|
$setup(D , posedge C &&& CE && !IS_C_INVERTED , /*-46*/ 0); // Negative times not currently supported
|
||||||
//$setup(D , negedge C &&& CE && IS_C_INVERTED , -46); // Negative times not currently supported
|
$setup(D , negedge C &&& CE && IS_C_INVERTED , /*-46*/ 0); // Negative times not currently supported
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
||||||
$setup(CE, posedge C &&& !IS_C_INVERTED, 109);
|
$setup(CE, posedge C &&& !IS_C_INVERTED, 109);
|
||||||
$setup(CE, negedge C &&& IS_C_INVERTED, 109);
|
$setup(CE, negedge C &&& IS_C_INVERTED, 109);
|
||||||
|
@ -529,7 +545,7 @@ module FDRE_1 (
|
||||||
always @(negedge C) if (R) Q <= 1'b0; else if (CE) Q <= D;
|
always @(negedge C) if (R) Q <= 1'b0; else if (CE) Q <= D;
|
||||||
specify
|
specify
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
||||||
//$setup(D , negedge C &&& CE, -46); // Negative times not currently supported
|
$setup(D , negedge C &&& CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
||||||
$setup(CE, negedge C, 109);
|
$setup(CE, negedge C, 109);
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L274
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L274
|
||||||
|
@ -564,8 +580,8 @@ module FDSE (
|
||||||
endgenerate
|
endgenerate
|
||||||
specify
|
specify
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
||||||
//$setup(D , posedge C &&& !IS_C_INVERTED && CE, -46); // Negative times not currently supported
|
$setup(D , posedge C &&& !IS_C_INVERTED && CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
//$setup(D , negedge C &&& IS_C_INVERTED && CE, -46); // Negative times not currently supported
|
$setup(D , negedge C &&& IS_C_INVERTED && CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
||||||
$setup(CE, posedge C &&& !IS_C_INVERTED, 109);
|
$setup(CE, posedge C &&& !IS_C_INVERTED, 109);
|
||||||
$setup(CE, negedge C &&& IS_C_INVERTED, 109);
|
$setup(CE, negedge C &&& IS_C_INVERTED, 109);
|
||||||
|
@ -594,7 +610,7 @@ module FDSE_1 (
|
||||||
always @(negedge C) if (S) Q <= 1'b1; else if (CE) Q <= D;
|
always @(negedge C) if (S) Q <= 1'b1; else if (CE) Q <= D;
|
||||||
specify
|
specify
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
||||||
//$setup(D , negedge C &&& CE, -46); // Negative times not currently supported
|
$setup(D , negedge C &&& CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
||||||
$setup(CE, negedge C, 109);
|
$setup(CE, negedge C, 109);
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L274
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L274
|
||||||
|
@ -667,8 +683,8 @@ module FDCE (
|
||||||
endgenerate
|
endgenerate
|
||||||
specify
|
specify
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
||||||
//$setup(D , posedge C &&& !IS_C_INVERTED && CE, -46); // Negative times not currently supported
|
$setup(D , posedge C &&& !IS_C_INVERTED && CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
//$setup(D , negedge C &&& IS_C_INVERTED && CE, -46); // Negative times not currently supported
|
$setup(D , negedge C &&& IS_C_INVERTED && CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
||||||
$setup(CE , posedge C &&& !IS_C_INVERTED, 109);
|
$setup(CE , posedge C &&& !IS_C_INVERTED, 109);
|
||||||
$setup(CE , negedge C &&& IS_C_INVERTED, 109);
|
$setup(CE , negedge C &&& IS_C_INVERTED, 109);
|
||||||
|
@ -697,7 +713,7 @@ module FDCE_1 (
|
||||||
always @(negedge C, posedge CLR) if (CLR) Q <= 1'b0; else if (CE) Q <= D;
|
always @(negedge C, posedge CLR) if (CLR) Q <= 1'b0; else if (CE) Q <= D;
|
||||||
specify
|
specify
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
||||||
//$setup(D , negedge C &&& CE, -46); // Negative times not currently supported
|
$setup(D , negedge C &&& CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
||||||
$setup(CE , negedge C, 109);
|
$setup(CE , negedge C, 109);
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L274
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L274
|
||||||
|
@ -734,8 +750,8 @@ module FDPE (
|
||||||
endgenerate
|
endgenerate
|
||||||
specify
|
specify
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
||||||
//$setup(D , posedge C &&& !IS_C_INVERTED && CE, -46); // Negative times not currently supported
|
$setup(D , posedge C &&& !IS_C_INVERTED && CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
//$setup(D , negedge C &&& IS_C_INVERTED && CE, -46); // Negative times not currently supported
|
$setup(D , negedge C &&& IS_C_INVERTED && CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
||||||
$setup(CE , posedge C &&& !IS_C_INVERTED, 109);
|
$setup(CE , posedge C &&& !IS_C_INVERTED, 109);
|
||||||
$setup(CE , negedge C &&& IS_C_INVERTED, 109);
|
$setup(CE , negedge C &&& IS_C_INVERTED, 109);
|
||||||
|
@ -764,7 +780,7 @@ module FDPE_1 (
|
||||||
always @(negedge C, posedge PRE) if (PRE) Q <= 1'b1; else if (CE) Q <= D;
|
always @(negedge C, posedge PRE) if (PRE) Q <= 1'b1; else if (CE) Q <= D;
|
||||||
specify
|
specify
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L249
|
||||||
//$setup(D , negedge C &&& CE, -46); // Negative times not currently supported
|
$setup(D , negedge C &&& CE, /*-46*/ 0); // Negative times not currently supported
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L248
|
||||||
$setup(CE , negedge C, 109);
|
$setup(CE , negedge C, 109);
|
||||||
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L274
|
// https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf#L274
|
||||||
|
|
Loading…
Reference in New Issue