mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	Uncomment negative setup times; clamp to zero for connectivity
This commit is contained in:
		
							parent
							
								
									9c640bfdd2
								
							
						
					
					
						commit
						b96866c456
					
				
					 1 changed files with 29 additions and 13 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue