mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	enable more primitives supported with nextpnr
This commit is contained in:
		
							parent
							
								
									3b9ebfa672
								
							
						
					
					
						commit
						0756285710
					
				
					 5 changed files with 135 additions and 18 deletions
				
			
		| 
						 | 
					@ -408,6 +408,17 @@ module FIFO8KB (...);
 | 
				
			||||||
    output FF;
 | 
					    output FF;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *)
 | 
				
			||||||
 | 
					module CLKDIVC (...);
 | 
				
			||||||
 | 
					    parameter GSR = "DISABLED";
 | 
				
			||||||
 | 
					    parameter DIV = "2.0";
 | 
				
			||||||
 | 
					    input RST;
 | 
				
			||||||
 | 
					    input CLKI;
 | 
				
			||||||
 | 
					    input ALIGNWD;
 | 
				
			||||||
 | 
					    output CDIV1;
 | 
				
			||||||
 | 
					    output CDIVX;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* blackbox *)
 | 
					(* blackbox *)
 | 
				
			||||||
module DCMA (...);
 | 
					module DCMA (...);
 | 
				
			||||||
    input CLK0;
 | 
					    input CLK0;
 | 
				
			||||||
| 
						 | 
					@ -416,6 +427,21 @@ module DCMA (...);
 | 
				
			||||||
    output DCMOUT;
 | 
					    output DCMOUT;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *)
 | 
				
			||||||
 | 
					module ECLKSYNCA (...);
 | 
				
			||||||
 | 
					    input ECLKI;
 | 
				
			||||||
 | 
					    input STOP;
 | 
				
			||||||
 | 
					    output ECLKO;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *)
 | 
				
			||||||
 | 
					module ECLKBRIDGECS (...);
 | 
				
			||||||
 | 
					    input CLK0;
 | 
				
			||||||
 | 
					    input CLK1;
 | 
				
			||||||
 | 
					    input SEL;
 | 
				
			||||||
 | 
					    output ECSOUT;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* blackbox *)
 | 
					(* blackbox *)
 | 
				
			||||||
module DCCA (...);
 | 
					module DCCA (...);
 | 
				
			||||||
    input CLKI;
 | 
					    input CLKI;
 | 
				
			||||||
| 
						 | 
					@ -423,6 +449,11 @@ module DCCA (...);
 | 
				
			||||||
    output CLKO;
 | 
					    output CLKO;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *) (* keep *)
 | 
				
			||||||
 | 
					module START (...);
 | 
				
			||||||
 | 
					    input STARTCLK;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* blackbox *)
 | 
					(* blackbox *)
 | 
				
			||||||
module EHXPLLJ (...);
 | 
					module EHXPLLJ (...);
 | 
				
			||||||
    parameter CLKI_DIV = 1;
 | 
					    parameter CLKI_DIV = 1;
 | 
				
			||||||
| 
						 | 
					@ -533,3 +564,8 @@ module OSCH (...);
 | 
				
			||||||
    output SEDSTDBY;
 | 
					    output SEDSTDBY;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *) (* keep *)
 | 
				
			||||||
 | 
					module TSALL (...);
 | 
				
			||||||
 | 
					    input TSALL;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -408,6 +408,17 @@ module FIFO8KB (...);
 | 
				
			||||||
    output FF;
 | 
					    output FF;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *)
 | 
				
			||||||
 | 
					module CLKDIVC (...);
 | 
				
			||||||
 | 
					    parameter GSR = "DISABLED";
 | 
				
			||||||
 | 
					    parameter DIV = "2.0";
 | 
				
			||||||
 | 
					    input RST;
 | 
				
			||||||
 | 
					    input CLKI;
 | 
				
			||||||
 | 
					    input ALIGNWD;
 | 
				
			||||||
 | 
					    output CDIV1;
 | 
				
			||||||
 | 
					    output CDIVX;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* blackbox *)
 | 
					(* blackbox *)
 | 
				
			||||||
module DCMA (...);
 | 
					module DCMA (...);
 | 
				
			||||||
    input CLK0;
 | 
					    input CLK0;
 | 
				
			||||||
| 
						 | 
					@ -416,6 +427,21 @@ module DCMA (...);
 | 
				
			||||||
    output DCMOUT;
 | 
					    output DCMOUT;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *)
 | 
				
			||||||
 | 
					module ECLKSYNCA (...);
 | 
				
			||||||
 | 
					    input ECLKI;
 | 
				
			||||||
 | 
					    input STOP;
 | 
				
			||||||
 | 
					    output ECLKO;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *)
 | 
				
			||||||
 | 
					module ECLKBRIDGECS (...);
 | 
				
			||||||
 | 
					    input CLK0;
 | 
				
			||||||
 | 
					    input CLK1;
 | 
				
			||||||
 | 
					    input SEL;
 | 
				
			||||||
 | 
					    output ECSOUT;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* blackbox *)
 | 
					(* blackbox *)
 | 
				
			||||||
module DCCA (...);
 | 
					module DCCA (...);
 | 
				
			||||||
    input CLKI;
 | 
					    input CLKI;
 | 
				
			||||||
| 
						 | 
					@ -423,6 +449,11 @@ module DCCA (...);
 | 
				
			||||||
    output CLKO;
 | 
					    output CLKO;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *) (* keep *)
 | 
				
			||||||
 | 
					module START (...);
 | 
				
			||||||
 | 
					    input STARTCLK;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* blackbox *)
 | 
					(* blackbox *)
 | 
				
			||||||
module EHXPLLJ (...);
 | 
					module EHXPLLJ (...);
 | 
				
			||||||
    parameter CLKI_DIV = 1;
 | 
					    parameter CLKI_DIV = 1;
 | 
				
			||||||
| 
						 | 
					@ -533,3 +564,8 @@ module OSCH (...);
 | 
				
			||||||
    output SEDSTDBY;
 | 
					    output SEDSTDBY;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *) (* keep *)
 | 
				
			||||||
 | 
					module TSALL (...);
 | 
				
			||||||
 | 
					    input TSALL;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -408,6 +408,17 @@ module FIFO8KB (...);
 | 
				
			||||||
    output FF;
 | 
					    output FF;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *)
 | 
				
			||||||
 | 
					module CLKDIVC (...);
 | 
				
			||||||
 | 
					    parameter GSR = "DISABLED";
 | 
				
			||||||
 | 
					    parameter DIV = "2.0";
 | 
				
			||||||
 | 
					    input RST;
 | 
				
			||||||
 | 
					    input CLKI;
 | 
				
			||||||
 | 
					    input ALIGNWD;
 | 
				
			||||||
 | 
					    output CDIV1;
 | 
				
			||||||
 | 
					    output CDIVX;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* blackbox *)
 | 
					(* blackbox *)
 | 
				
			||||||
module DCMA (...);
 | 
					module DCMA (...);
 | 
				
			||||||
    input CLK0;
 | 
					    input CLK0;
 | 
				
			||||||
| 
						 | 
					@ -416,6 +427,21 @@ module DCMA (...);
 | 
				
			||||||
    output DCMOUT;
 | 
					    output DCMOUT;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *)
 | 
				
			||||||
 | 
					module ECLKSYNCA (...);
 | 
				
			||||||
 | 
					    input ECLKI;
 | 
				
			||||||
 | 
					    input STOP;
 | 
				
			||||||
 | 
					    output ECLKO;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *)
 | 
				
			||||||
 | 
					module ECLKBRIDGECS (...);
 | 
				
			||||||
 | 
					    input CLK0;
 | 
				
			||||||
 | 
					    input CLK1;
 | 
				
			||||||
 | 
					    input SEL;
 | 
				
			||||||
 | 
					    output ECSOUT;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* blackbox *)
 | 
					(* blackbox *)
 | 
				
			||||||
module DCCA (...);
 | 
					module DCCA (...);
 | 
				
			||||||
    input CLKI;
 | 
					    input CLKI;
 | 
				
			||||||
| 
						 | 
					@ -423,6 +449,11 @@ module DCCA (...);
 | 
				
			||||||
    output CLKO;
 | 
					    output CLKO;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *) (* keep *)
 | 
				
			||||||
 | 
					module START (...);
 | 
				
			||||||
 | 
					    input STARTCLK;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(* blackbox *)
 | 
					(* blackbox *)
 | 
				
			||||||
module EHXPLLJ (...);
 | 
					module EHXPLLJ (...);
 | 
				
			||||||
    parameter CLKI_DIV = 1;
 | 
					    parameter CLKI_DIV = 1;
 | 
				
			||||||
| 
						 | 
					@ -534,3 +565,8 @@ module OSCJ (...);
 | 
				
			||||||
    output OSCESB;
 | 
					    output OSCESB;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(* blackbox *) (* keep *)
 | 
				
			||||||
 | 
					module TSALL (...);
 | 
				
			||||||
 | 
					    input TSALL;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -315,13 +315,13 @@ devices = [
 | 
				
			||||||
        Cell("PDPW8KC"),
 | 
					        Cell("PDPW8KC"),
 | 
				
			||||||
        Cell("SP8KC"),
 | 
					        Cell("SP8KC"),
 | 
				
			||||||
        Cell("FIFO8KB"),
 | 
					        Cell("FIFO8KB"),
 | 
				
			||||||
        #Cell("CLKDIVC"),
 | 
					        Cell("CLKDIVC"),
 | 
				
			||||||
        Cell("DCMA"),
 | 
					        Cell("DCMA"),
 | 
				
			||||||
        #Cell("ECLKSYNCA"),
 | 
					        Cell("ECLKSYNCA"),
 | 
				
			||||||
        #Cell("ECLKBRIDGECS"),
 | 
					        Cell("ECLKBRIDGECS"),
 | 
				
			||||||
        Cell("DCCA"),
 | 
					        Cell("DCCA"),
 | 
				
			||||||
        #Cell("JTAGF"),
 | 
					        #Cell("JTAGF", True, port_attrs={'TCK': ['iopad_external_pin'], 'TMS': ['iopad_external_pin'], 'TDO': ['iopad_external_pin'], 'TDI': ['iopad_external_pin']}),
 | 
				
			||||||
        #Cell("START"),
 | 
					        Cell("START", True),
 | 
				
			||||||
        #Cell("SEDFA"),
 | 
					        #Cell("SEDFA"),
 | 
				
			||||||
        #Cell("SEDFB"),
 | 
					        #Cell("SEDFB"),
 | 
				
			||||||
        #Cell("IDDRXE"),
 | 
					        #Cell("IDDRXE"),
 | 
				
			||||||
| 
						 | 
					@ -351,7 +351,7 @@ devices = [
 | 
				
			||||||
        #Cell("PLLREFCS"),
 | 
					        #Cell("PLLREFCS"),
 | 
				
			||||||
        Cell("OSCH"),
 | 
					        Cell("OSCH"),
 | 
				
			||||||
        #Cell("EFB"),
 | 
					        #Cell("EFB"),
 | 
				
			||||||
        #Cell("TSALL"),
 | 
					        Cell("TSALL", True),
 | 
				
			||||||
    ]),
 | 
					    ]),
 | 
				
			||||||
    ("cells_bb_xo3.v", "machxo3lf", [
 | 
					    ("cells_bb_xo3.v", "machxo3lf", [
 | 
				
			||||||
        #Cell("AGEB2"),
 | 
					        #Cell("AGEB2"),
 | 
				
			||||||
| 
						 | 
					@ -495,13 +495,13 @@ devices = [
 | 
				
			||||||
        Cell("PDPW8KC"),
 | 
					        Cell("PDPW8KC"),
 | 
				
			||||||
        Cell("SP8KC"),
 | 
					        Cell("SP8KC"),
 | 
				
			||||||
        Cell("FIFO8KB"),
 | 
					        Cell("FIFO8KB"),
 | 
				
			||||||
        #Cell("CLKDIVC"),
 | 
					        Cell("CLKDIVC"),
 | 
				
			||||||
        Cell("DCMA"),
 | 
					        Cell("DCMA"),
 | 
				
			||||||
        #Cell("ECLKSYNCA"),
 | 
					        Cell("ECLKSYNCA"),
 | 
				
			||||||
        #Cell("ECLKBRIDGECS"),
 | 
					        Cell("ECLKBRIDGECS"),
 | 
				
			||||||
        Cell("DCCA"),
 | 
					        Cell("DCCA"),
 | 
				
			||||||
        #Cell("JTAGF"),
 | 
					        #Cell("JTAGF", True, port_attrs={'TCK': ['iopad_external_pin'], 'TMS': ['iopad_external_pin'], 'TDO': ['iopad_external_pin'], 'TDI': ['iopad_external_pin']}),
 | 
				
			||||||
        #Cell("START"),
 | 
					        Cell("START", True),
 | 
				
			||||||
        #Cell("SEDFA"),
 | 
					        #Cell("SEDFA"),
 | 
				
			||||||
        #Cell("SEDFB"),
 | 
					        #Cell("SEDFB"),
 | 
				
			||||||
        #Cell("IDDRXE"),
 | 
					        #Cell("IDDRXE"),
 | 
				
			||||||
| 
						 | 
					@ -527,7 +527,7 @@ devices = [
 | 
				
			||||||
        #Cell("PLLREFCS"),
 | 
					        #Cell("PLLREFCS"),
 | 
				
			||||||
        Cell("OSCH"),
 | 
					        Cell("OSCH"),
 | 
				
			||||||
        #Cell("EFB"),
 | 
					        #Cell("EFB"),
 | 
				
			||||||
        #Cell("TSALL"),
 | 
					        Cell("TSALL", True),
 | 
				
			||||||
    ]),
 | 
					    ]),
 | 
				
			||||||
    ("cells_bb_xo3d.v", "machxo3d", [
 | 
					    ("cells_bb_xo3d.v", "machxo3d", [
 | 
				
			||||||
        #Cell("AGEB2"),
 | 
					        #Cell("AGEB2"),
 | 
				
			||||||
| 
						 | 
					@ -672,13 +672,13 @@ devices = [
 | 
				
			||||||
        Cell("PDPW8KC"),
 | 
					        Cell("PDPW8KC"),
 | 
				
			||||||
        Cell("SP8KC"),
 | 
					        Cell("SP8KC"),
 | 
				
			||||||
        Cell("FIFO8KB"),
 | 
					        Cell("FIFO8KB"),
 | 
				
			||||||
        #Cell("CLKDIVC"),
 | 
					        Cell("CLKDIVC"),
 | 
				
			||||||
        Cell("DCMA"),
 | 
					        Cell("DCMA"),
 | 
				
			||||||
        #Cell("ECLKSYNCA"),
 | 
					        Cell("ECLKSYNCA"),
 | 
				
			||||||
        #Cell("ECLKBRIDGECS"),
 | 
					        Cell("ECLKBRIDGECS"),
 | 
				
			||||||
        Cell("DCCA"),
 | 
					        Cell("DCCA"),
 | 
				
			||||||
        #Cell("JTAGF"),
 | 
					        #Cell("JTAGF", True, port_attrs={'TCK': ['iopad_external_pin'], 'TMS': ['iopad_external_pin'], 'TDO': ['iopad_external_pin'], 'TDI': ['iopad_external_pin']}),
 | 
				
			||||||
        #Cell("START"),
 | 
					        Cell("START", True),
 | 
				
			||||||
        #Cell("SEDFA"),
 | 
					        #Cell("SEDFA"),
 | 
				
			||||||
        #Cell("SEDFB"),
 | 
					        #Cell("SEDFB"),
 | 
				
			||||||
        #Cell("IDDRXE"),
 | 
					        #Cell("IDDRXE"),
 | 
				
			||||||
| 
						 | 
					@ -704,7 +704,7 @@ devices = [
 | 
				
			||||||
        #Cell("PLLREFCS"),
 | 
					        #Cell("PLLREFCS"),
 | 
				
			||||||
        Cell("OSCJ"),
 | 
					        Cell("OSCJ"),
 | 
				
			||||||
        #Cell("EFBB"),
 | 
					        #Cell("EFBB"),
 | 
				
			||||||
        #Cell("TSALL"),
 | 
					        Cell("TSALL", True),
 | 
				
			||||||
        #Cell("ESBA"),
 | 
					        #Cell("ESBA"),
 | 
				
			||||||
        #Cell("BCSLEWRATEA"),
 | 
					        #Cell("BCSLEWRATEA"),
 | 
				
			||||||
    ])
 | 
					    ])
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -394,6 +394,15 @@ module TRELLIS_COMB(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Constants
 | 
				
			||||||
 | 
					module VLO(output Z);
 | 
				
			||||||
 | 
						assign Z = 1'b0;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module VHI(output Z);
 | 
				
			||||||
 | 
						assign Z = 1'b1;
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`ifndef NO_INCLUDES
 | 
					`ifndef NO_INCLUDES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`include "cells_ff.vh"
 | 
					`include "cells_ff.vh"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue