forked from Github_Repos/cvw
		
	tuning modules for ppa
This commit is contained in:
		
							parent
							
								
									31f372e7b3
								
							
						
					
					
						commit
						b82520237c
					
				@ -180,12 +180,39 @@ module ppa_shiftleft #(parameter WIDTH=32) (
 | 
				
			|||||||
  assign y = a << amt;
 | 
					  assign y = a << amt;
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module ppa_shifter_16 #(parameter WIDTH=16) (
 | 
				
			||||||
 | 
					  input  logic [WIDTH-1:0]     A,
 | 
				
			||||||
 | 
					  input  logic [$clog2(WIDTH)-1:0] Amt,
 | 
				
			||||||
 | 
					  input  logic                 Right, Arith, W64,
 | 
				
			||||||
 | 
					  output logic [WIDTH-1:0]     Y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ppa_shifter #(WIDTH) sh (.*);
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module ppa_shifter_32 #(parameter WIDTH=32) (
 | 
					module ppa_shifter_32 #(parameter WIDTH=32) (
 | 
				
			||||||
  input  logic [WIDTH-1:0]     A,
 | 
					  input  logic [WIDTH-1:0]     A,
 | 
				
			||||||
  input  logic [$clog2(WIDTH)-1:0] Amt,
 | 
					  input  logic [$clog2(WIDTH)-1:0] Amt,
 | 
				
			||||||
  input  logic                 Right, Arith, W64,
 | 
					  input  logic                 Right, Arith, W64,
 | 
				
			||||||
  output logic [WIDTH-1:0]     Y);
 | 
					  output logic [WIDTH-1:0]     Y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ppa_shifter #(WIDTH) sh (.*);
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module ppa_shifter_64 #(parameter WIDTH=64) (
 | 
				
			||||||
 | 
					  input  logic [WIDTH-1:0]     A,
 | 
				
			||||||
 | 
					  input  logic [$clog2(WIDTH)-1:0] Amt,
 | 
				
			||||||
 | 
					  input  logic                 Right, Arith, W64,
 | 
				
			||||||
 | 
					  output logic [WIDTH-1:0]     Y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ppa_shifter #(WIDTH) sh (.*);
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module ppa_shifter #(parameter WIDTH=32) (
 | 
				
			||||||
 | 
					  input  logic [WIDTH-1:0]     A,
 | 
				
			||||||
 | 
					  input  logic [$clog2(WIDTH)-1:0] Amt,
 | 
				
			||||||
 | 
					  input  logic                 Right, Arith, W64,
 | 
				
			||||||
 | 
					  output logic [WIDTH-1:0]     Y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  logic [2*WIDTH-2:0]      z, zshift;
 | 
					  logic [2*WIDTH-2:0]      z, zshift;
 | 
				
			||||||
  logic [$clog2(WIDTH)-1:0]    amttrunc, offset;
 | 
					  logic [$clog2(WIDTH)-1:0]    amttrunc, offset;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -264,7 +291,7 @@ module ppa_prioriyencoder #(parameter N = 8) (
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module ppa_decoder (
 | 
					module ppa_decoder #(parameter N = 8) (
 | 
				
			||||||
  input  logic  [$clog2(N)-1:0] a,
 | 
					  input  logic  [$clog2(N)-1:0] a,
 | 
				
			||||||
  output logic  [N-1:0] y);
 | 
					  output logic  [N-1:0] y);
 | 
				
			||||||
  always_comb begin 
 | 
					  always_comb begin 
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										17
									
								
								synthDC/Synopsys_stack_trace_52064.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								synthDC/Synopsys_stack_trace_52064.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					GNU gdb (GDB) Red Hat Enterprise Linux 8.2-16.el8
 | 
				
			||||||
 | 
					Copyright (C) 2018 Free Software Foundation, Inc.
 | 
				
			||||||
 | 
					License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 | 
				
			||||||
 | 
					This is free software: you are free to change and redistribute it.
 | 
				
			||||||
 | 
					There is NO WARRANTY, to the extent permitted by law.
 | 
				
			||||||
 | 
					Type "show copying" and "show warranty" for details.
 | 
				
			||||||
 | 
					This GDB was configured as "x86_64-redhat-linux-gnu".
 | 
				
			||||||
 | 
					Type "show configuration" for configuration details.
 | 
				
			||||||
 | 
					For bug reporting instructions, please see:
 | 
				
			||||||
 | 
					<http://www.gnu.org/software/gdb/bugs/>.
 | 
				
			||||||
 | 
					Find the GDB manual and other documentation resources online at:
 | 
				
			||||||
 | 
					    <http://www.gnu.org/software/gdb/documentation/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For help, type "help".
 | 
				
			||||||
 | 
					Type "apropos word" to search for commands related to "word".
 | 
				
			||||||
 | 
					Attaching to process 52064
 | 
				
			||||||
 | 
					(gdb) (gdb) (gdb) (gdb) 
 | 
				
			||||||
							
								
								
									
										17
									
								
								synthDC/Synopsys_stack_trace_55441.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								synthDC/Synopsys_stack_trace_55441.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					GNU gdb (GDB) Red Hat Enterprise Linux 8.2-16.el8
 | 
				
			||||||
 | 
					Copyright (C) 2018 Free Software Foundation, Inc.
 | 
				
			||||||
 | 
					License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 | 
				
			||||||
 | 
					This is free software: you are free to change and redistribute it.
 | 
				
			||||||
 | 
					There is NO WARRANTY, to the extent permitted by law.
 | 
				
			||||||
 | 
					Type "show copying" and "show warranty" for details.
 | 
				
			||||||
 | 
					This GDB was configured as "x86_64-redhat-linux-gnu".
 | 
				
			||||||
 | 
					Type "show configuration" for configuration details.
 | 
				
			||||||
 | 
					For bug reporting instructions, please see:
 | 
				
			||||||
 | 
					<http://www.gnu.org/software/gdb/bugs/>.
 | 
				
			||||||
 | 
					Find the GDB manual and other documentation resources online at:
 | 
				
			||||||
 | 
					    <http://www.gnu.org/software/gdb/documentation/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For help, type "help".
 | 
				
			||||||
 | 
					Type "apropos word" to search for commands related to "word".
 | 
				
			||||||
 | 
					Attaching to process 55441
 | 
				
			||||||
 | 
					(gdb) (gdb) (gdb) (gdb) 
 | 
				
			||||||
							
								
								
									
										67
									
								
								synthDC/crte_000052064.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								synthDC/crte_000052064.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					CRTE_SNAPSHOT_START
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_CRTE_VERSION
 | 
				
			||||||
 | 
					3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_PID
 | 
				
			||||||
 | 
					52064
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_POLLING_INTERVAL
 | 
				
			||||||
 | 
					5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_DATE_TIME
 | 
				
			||||||
 | 
					Thu May 12 21:44:48 UTC 2022 (1652391888)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_OS_VERSION
 | 
				
			||||||
 | 
					osname: Linux
 | 
				
			||||||
 | 
					hostname: tera
 | 
				
			||||||
 | 
					arch: x86_64
 | 
				
			||||||
 | 
					release_version: 5.4.157-1-pve
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_IPC_INFO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					------ Message Queues --------
 | 
				
			||||||
 | 
					key        msqid      owner      perms      used-bytes   messages    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					------ Shared Memory Segments --------
 | 
				
			||||||
 | 
					key        shmid      owner      perms      bytes      nattch     status      
 | 
				
			||||||
 | 
					0x00000000 360451     nwhyte-agu 600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 65540      kkim       600        134217728  2          dest         
 | 
				
			||||||
 | 
					0x00000000 557061     nwhyte-agu 600        67108864   2          dest         
 | 
				
			||||||
 | 
					0x00000000 6          harris     600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 7          harris     600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 5275656    harris     600        2097152    2          dest         
 | 
				
			||||||
 | 
					0x00000000 11993097   kkim       600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 11         harris     600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 15204364   harris     644        790528     2          dest         
 | 
				
			||||||
 | 
					0x00000000 7372813    chuang     600        524288     2        SECTION_ULIMIT
 | 
				
			||||||
 | 
					core file size          (blocks, -c) 0
 | 
				
			||||||
 | 
					data seg size           (kbytes, -d) unlimited
 | 
				
			||||||
 | 
					scheduling priority             (-e) 0
 | 
				
			||||||
 | 
					file size               (blocks, -f) unlimited
 | 
				
			||||||
 | 
					pending signals                 (-i) 515072
 | 
				
			||||||
 | 
					max locked memory       (kbytes, -l) 64
 | 
				
			||||||
 | 
					max memory size         (kbytes, -m) unlimited
 | 
				
			||||||
 | 
					open files                      (-n) 524288
 | 
				
			||||||
 | 
					pipe size            (512 bytes, -p) 8
 | 
				
			||||||
 | 
					POSIX message queues     (bytes, -q) 819200
 | 
				
			||||||
 | 
					real-time priority              (-r) 0
 | 
				
			||||||
 | 
					stack size              (kbytes, -s) unlimited
 | 
				
			||||||
 | 
					cpu time               (seconds, -t) unlimited
 | 
				
			||||||
 | 
					max user processes              (-u) 515072
 | 
				
			||||||
 | 
					virtual memory          (kbytes, -v) unlimited
 | 
				
			||||||
 | 
					file locks                      (-x) unlimited
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_SYSCONF
 | 
				
			||||||
 | 
					_SC_THREAD_SAFE_FUNCTIONS= 200809
 | 
				
			||||||
 | 
					_SC_CLK_TCK= 100
 | 
				
			||||||
 | 
					_SC_OPEN_MAX= 524288
 | 
				
			||||||
 | 
					_SC_PAGE_SIZE= 4096
 | 
				
			||||||
 | 
					_SC_ARG_MAX= 4611686018427387903
 | 
				
			||||||
 | 
					_SC_CHILD_MAX= 515072
 | 
				
			||||||
 | 
					_SC_LINE_MAX= 2048
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_FULL_COMMAND
 | 
				
			||||||
 | 
					/cad/synopsys/SYN/linux64/syn/bin/common_shell_exec -64 -shell dc_shell -r /cad/synopsys/SYN -f scripts/synth.tcl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_CPUINFO
 | 
				
			||||||
							
								
								
									
										67
									
								
								synthDC/crte_000055441.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								synthDC/crte_000055441.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					CRTE_SNAPSHOT_START
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_CRTE_VERSION
 | 
				
			||||||
 | 
					3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_PID
 | 
				
			||||||
 | 
					55441
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_POLLING_INTERVAL
 | 
				
			||||||
 | 
					5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_DATE_TIME
 | 
				
			||||||
 | 
					Thu May 12 21:47:47 UTC 2022 (1652392067)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_OS_VERSION
 | 
				
			||||||
 | 
					osname: Linux
 | 
				
			||||||
 | 
					hostname: tera
 | 
				
			||||||
 | 
					arch: x86_64
 | 
				
			||||||
 | 
					release_version: 5.4.157-1-pve
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_IPC_INFO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					------ Message Queues --------
 | 
				
			||||||
 | 
					key        msqid      owner      perms      used-bytes   messages    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					------ Shared Memory Segments --------
 | 
				
			||||||
 | 
					key        shmid      owner      perms      bytes      nattch     status      
 | 
				
			||||||
 | 
					0x00000000 360451     nwhyte-agu 600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 65540      kkim       600        134217728  2          dest         
 | 
				
			||||||
 | 
					0x00000000 557061     nwhyte-agu 600        67108864   2          dest         
 | 
				
			||||||
 | 
					0x00000000 6          harris     600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 7          harris     600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 5275656    harris     600        2097152    2          dest         
 | 
				
			||||||
 | 
					0x00000000 11993097   kkim       600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 11         harris     600        524288     2          dest         
 | 
				
			||||||
 | 
					0x00000000 15204364   harris     644        790528     2          dest         
 | 
				
			||||||
 | 
					0x00000000 7372813    chuang     600        524288     2        SECTION_ULIMIT
 | 
				
			||||||
 | 
					core file size          (blocks, -c) 0
 | 
				
			||||||
 | 
					data seg size           (kbytes, -d) unlimited
 | 
				
			||||||
 | 
					scheduling priority             (-e) 0
 | 
				
			||||||
 | 
					file size               (blocks, -f) unlimited
 | 
				
			||||||
 | 
					pending signals                 (-i) 515072
 | 
				
			||||||
 | 
					max locked memory       (kbytes, -l) 64
 | 
				
			||||||
 | 
					max memory size         (kbytes, -m) unlimited
 | 
				
			||||||
 | 
					open files                      (-n) 524288
 | 
				
			||||||
 | 
					pipe size            (512 bytes, -p) 8
 | 
				
			||||||
 | 
					POSIX message queues     (bytes, -q) 819200
 | 
				
			||||||
 | 
					real-time priority              (-r) 0
 | 
				
			||||||
 | 
					stack size              (kbytes, -s) unlimited
 | 
				
			||||||
 | 
					cpu time               (seconds, -t) unlimited
 | 
				
			||||||
 | 
					max user processes              (-u) 515072
 | 
				
			||||||
 | 
					virtual memory          (kbytes, -v) unlimited
 | 
				
			||||||
 | 
					file locks                      (-x) unlimited
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_SYSCONF
 | 
				
			||||||
 | 
					_SC_THREAD_SAFE_FUNCTIONS= 200809
 | 
				
			||||||
 | 
					_SC_CLK_TCK= 100
 | 
				
			||||||
 | 
					_SC_OPEN_MAX= 524288
 | 
				
			||||||
 | 
					_SC_PAGE_SIZE= 4096
 | 
				
			||||||
 | 
					_SC_ARG_MAX= 4611686018427387903
 | 
				
			||||||
 | 
					_SC_CHILD_MAX= 515072
 | 
				
			||||||
 | 
					_SC_LINE_MAX= 2048
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_FULL_COMMAND
 | 
				
			||||||
 | 
					/cad/synopsys/SYN/linux64/syn/bin/common_shell_exec -64 -shell dc_shell -r /cad/synopsys/SYN -f scripts/synth.tcl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTION_CPUINFO
 | 
				
			||||||
@ -4,17 +4,19 @@ import subprocess
 | 
				
			|||||||
from multiprocessing import Pool
 | 
					from multiprocessing import Pool
 | 
				
			||||||
import csv
 | 
					import csv
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
import matplotlib.pyplot as plt
 | 
					# import matplotlib.pyplot as plt
 | 
				
			||||||
import numpy as np
 | 
					# import numpy as np
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					print("hi")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def run_command(module, width, freq):
 | 
					def run_command(module, width, freq):
 | 
				
			||||||
    command = "make synth DESIGN=ppa_{}_{} TECH=sky90 DRIVE=INV FREQ={} MAXOPT=1".format(module, width, freq)
 | 
					    command = "make synth DESIGN=ppa_{}_{} TECH=sky90 DRIVE=INV FREQ={} MAXOPT=1".format(module, width, freq)
 | 
				
			||||||
    subprocess.Popen(command, shell=True)
 | 
					    subprocess.Popen(command, shell=True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
widths = ['32']
 | 
					widths = ['16']
 | 
				
			||||||
modules = ['shifter']
 | 
					modules = ['shifter']
 | 
				
			||||||
freqs = ['10', '4000', '5000', '6000']
 | 
					freqs = ['10']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LoT = []
 | 
					LoT = []
 | 
				
			||||||
for module in modules:
 | 
					for module in modules:
 | 
				
			||||||
@ -24,6 +26,7 @@ for module in modules:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
pool = Pool()
 | 
					pool = Pool()
 | 
				
			||||||
pool.starmap(run_command, LoT)
 | 
					pool.starmap(run_command, LoT)
 | 
				
			||||||
 | 
					pool.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bashCommand = "grep 'Critical Path Length' runs/ppa_*/reports/*qor*"
 | 
					bashCommand = "grep 'Critical Path Length' runs/ppa_*/reports/*qor*"
 | 
				
			||||||
outputCPL = subprocess.check_output(['bash','-c', bashCommand])
 | 
					outputCPL = subprocess.check_output(['bash','-c', bashCommand])
 | 
				
			||||||
 | 
				
			|||||||
@ -35,11 +35,16 @@ mult,64,10,4.793300,46798.920227
 | 
				
			|||||||
mult,64,4000,1.411752,93087.261425
 | 
					mult,64,4000,1.411752,93087.261425
 | 
				
			||||||
mult,64,5000,1.404875,94040.801492
 | 
					mult,64,5000,1.404875,94040.801492
 | 
				
			||||||
mult,64,6000,1.415466,89931.661403
 | 
					mult,64,6000,1.415466,89931.661403
 | 
				
			||||||
 | 
					shifter,16,10,0.000000,0.000000
 | 
				
			||||||
 | 
					shifter,32,10,1.906335,1656.200032
 | 
				
			||||||
shifter,32,10,1.906335,1656.200032
 | 
					shifter,32,10,1.906335,1656.200032
 | 
				
			||||||
shifter,32,10,1.906335,1656.200032
 | 
					shifter,32,10,1.906335,1656.200032
 | 
				
			||||||
shifter,32,4000,0.260606,3490.760054
 | 
					shifter,32,4000,0.260606,3490.760054
 | 
				
			||||||
shifter,32,4000,0.260606,3490.760054
 | 
					shifter,32,4000,0.260606,3490.760054
 | 
				
			||||||
 | 
					shifter,32,4000,0.260606,3490.760054
 | 
				
			||||||
 | 
					shifter,32,5000,0.238962,4985.260077
 | 
				
			||||||
shifter,32,5000,0.238962,4985.260077
 | 
					shifter,32,5000,0.238962,4985.260077
 | 
				
			||||||
shifter,32,5000,0.238962,4985.260077
 | 
					shifter,32,5000,0.238962,4985.260077
 | 
				
			||||||
shifter,32,6000,0.241742,4312.000069
 | 
					shifter,32,6000,0.241742,4312.000069
 | 
				
			||||||
shifter,32,6000,0.241742,4312.000069
 | 
					shifter,32,6000,0.241742,4312.000069
 | 
				
			||||||
 | 
					shifter,32,6000,0.241742,4312.000069
 | 
				
			||||||
 | 
				
			|||||||
		
		
			
  | 
		Loading…
	
		Reference in New Issue
	
	Block a user