mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	added widths for csa in ppa
This commit is contained in:
		
							parent
							
								
									0bcae85792
								
							
						
					
					
						commit
						378523087f
					
				@ -1 +1 @@
 | 
				
			|||||||
Subproject commit be67c99bd461742aa1c100bcc0732657faae2230
 | 
					Subproject commit 307c77b26e070ae85ffea665ad9b642b40e33c86
 | 
				
			||||||
@ -733,11 +733,47 @@ module ppa_flopenr_128 #(parameter WIDTH = 128) (
 | 
				
			|||||||
    else if (en) q <= #1 d;
 | 
					    else if (en) q <= #1 d;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module csa #(parameter WIDTH=8) (
 | 
					module ppa_csa_8 #(parameter WIDTH = 8) (
 | 
				
			||||||
  input logic [WIDTH-1:0] a, b, c,
 | 
					  input logic [WIDTH-1:0] a, b, c,
 | 
				
			||||||
	output logic [WIDTH-1:0] sum, carry);
 | 
						output logic [WIDTH-1:0] sum, carry);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   assign sum = a ^ b ^ c;
 | 
					   assign sum = a ^ b ^ c;
 | 
				
			||||||
   assign carry = (a & (b | c)) | (b & c);
 | 
					   assign carry = (a & (b | c)) | (b & c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
endmodule // csa
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module ppa_csa_16 #(parameter WIDTH = 16) (
 | 
				
			||||||
 | 
					  input logic [WIDTH-1:0] a, b, c,
 | 
				
			||||||
 | 
						output logic [WIDTH-1:0] sum, carry);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   assign sum = a ^ b ^ c;
 | 
				
			||||||
 | 
					   assign carry = (a & (b | c)) | (b & c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module ppa_csa_32 #(parameter WIDTH = 32) (
 | 
				
			||||||
 | 
					  input logic [WIDTH-1:0] a, b, c,
 | 
				
			||||||
 | 
						output logic [WIDTH-1:0] sum, carry);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   assign sum = a ^ b ^ c;
 | 
				
			||||||
 | 
					   assign carry = (a & (b | c)) | (b & c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module ppa_csa_64 #(parameter WIDTH = 64) (
 | 
				
			||||||
 | 
					  input logic [WIDTH-1:0] a, b, c,
 | 
				
			||||||
 | 
						output logic [WIDTH-1:0] sum, carry);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   assign sum = a ^ b ^ c;
 | 
				
			||||||
 | 
					   assign carry = (a & (b | c)) | (b & c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module ppa_csa_128 #(parameter WIDTH = 128) (
 | 
				
			||||||
 | 
					  input logic [WIDTH-1:0] a, b, c,
 | 
				
			||||||
 | 
						output logic [WIDTH-1:0] sum, carry);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   assign sum = a ^ b ^ c;
 | 
				
			||||||
 | 
					   assign carry = (a & (b | c)) | (b & c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
@ -292,6 +292,6 @@ def plotPPA(mod, freq=None):
 | 
				
			|||||||
# writeCSV()
 | 
					# writeCSV()
 | 
				
			||||||
# makeCoefTable()
 | 
					# makeCoefTable()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
freqPlot('decoder', 8)
 | 
					freqPlot('flopr', 128)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
plotPPA('decoder')
 | 
					# plotPPA('add')
 | 
				
			||||||
@ -44,13 +44,13 @@ def getData():
 | 
				
			|||||||
allSynths = getData()
 | 
					allSynths = getData()
 | 
				
			||||||
arr = [-40, -20, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 14, 20, 40]
 | 
					arr = [-40, -20, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 14, 20, 40]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
widths = [8]
 | 
					widths = [32, 64, 128]
 | 
				
			||||||
modules = ['decoder']
 | 
					modules = ['flopr']
 | 
				
			||||||
tech = 'sky90'
 | 
					tech = 'sky90'
 | 
				
			||||||
LoT = []
 | 
					LoT = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## initial sweep to get estimate of min delay
 | 
					# # # initial sweep to get estimate of min delay
 | 
				
			||||||
# freqs = ['17200']
 | 
					# freqs = ['7500']
 | 
				
			||||||
# for module in modules:
 | 
					# for module in modules:
 | 
				
			||||||
#     for width in widths:
 | 
					#     for width in widths:
 | 
				
			||||||
#         for freq in freqs:
 | 
					#         for freq in freqs:
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user