mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	coolrunner2: Add a few more primitives
These cannot be inferred yet, but add them to cells_sim.v for now
This commit is contained in:
		
							parent
							
								
									36b75dfcb7
								
							
						
					
					
						commit
						b102c0e254
					
				
					 1 changed files with 110 additions and 0 deletions
				
			
		|  | @ -134,3 +134,113 @@ module LDCP_N (G, PRE, CLR, D, Q); | |||
|             Q <= 1; | ||||
|     end | ||||
| endmodule | ||||
| 
 | ||||
| module BUFG(I, O); | ||||
|     input I; | ||||
|     output O; | ||||
| 
 | ||||
|     assign O = I; | ||||
| endmodule | ||||
| 
 | ||||
| module BUFGSR(I, O); | ||||
|     input I; | ||||
|     output O; | ||||
| 
 | ||||
|     assign O = I; | ||||
| endmodule | ||||
| 
 | ||||
| module BUFGTS(I, O); | ||||
|     input I; | ||||
|     output O; | ||||
| 
 | ||||
|     assign O = I; | ||||
| endmodule | ||||
| 
 | ||||
| module FDDCP (C, PRE, CLR, D, Q); | ||||
|     parameter INIT = 0; | ||||
| 
 | ||||
|     input C, PRE, CLR, D; | ||||
|     output reg Q; | ||||
| 
 | ||||
|     initial begin | ||||
|         Q <= INIT; | ||||
|     end | ||||
| 
 | ||||
|     always @(posedge C, negedge C, posedge PRE, posedge CLR) begin | ||||
|         if (CLR == 1) | ||||
|             Q <= 0; | ||||
|         else if (PRE == 1) | ||||
|             Q <= 1; | ||||
|         else | ||||
|             Q <= D; | ||||
|     end | ||||
| endmodule | ||||
| 
 | ||||
| module FTCP (C, PRE, CLR, T, Q); | ||||
|     parameter INIT = 0; | ||||
| 
 | ||||
|     input C, PRE, CLR, T; | ||||
|     output wire Q; | ||||
|     reg Q_; | ||||
| 
 | ||||
|     initial begin | ||||
|         Q_ <= INIT; | ||||
|     end | ||||
| 
 | ||||
|     always @(posedge C, posedge PRE, posedge CLR) begin | ||||
|         if (CLR == 1) | ||||
|             Q_ <= 0; | ||||
|         else if (PRE == 1) | ||||
|             Q_ <= 1; | ||||
|         else if (T == 1) | ||||
|             Q_ <= ~Q_; | ||||
|     end | ||||
| 
 | ||||
|     assign Q = Q_; | ||||
| endmodule | ||||
| 
 | ||||
| module FTCP_N (C, PRE, CLR, T, Q); | ||||
|     parameter INIT = 0; | ||||
| 
 | ||||
|     input C, PRE, CLR, T; | ||||
|     output wire Q; | ||||
|     reg Q_; | ||||
| 
 | ||||
|     initial begin | ||||
|         Q_ <= INIT; | ||||
|     end | ||||
| 
 | ||||
|     always @(negedge C, posedge PRE, posedge CLR) begin | ||||
|         if (CLR == 1) | ||||
|             Q_ <= 0; | ||||
|         else if (PRE == 1) | ||||
|             Q_ <= 1; | ||||
|         else if (T == 1) | ||||
|             Q_ <= ~Q_; | ||||
|     end | ||||
| 
 | ||||
|     assign Q = Q_; | ||||
| endmodule | ||||
| 
 | ||||
| module FTDCP (C, PRE, CLR, T, Q); | ||||
|     parameter INIT = 0; | ||||
| 
 | ||||
|     input C, PRE, CLR, T; | ||||
|     output wire Q; | ||||
|     reg Q_; | ||||
| 
 | ||||
|     initial begin | ||||
|         Q_ <= INIT; | ||||
|     end | ||||
| 
 | ||||
|     always @(posedge C, negedge C, posedge PRE, posedge CLR) begin | ||||
|         if (CLR == 1) | ||||
|             Q_ <= 0; | ||||
|         else if (PRE == 1) | ||||
|             Q_ <= 1; | ||||
|         else if (T == 1) | ||||
|             Q_ <= ~Q_; | ||||
|     end | ||||
| 
 | ||||
|     assign Q = Q_; | ||||
| endmodule | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue