mirror of
				https://github.com/YosysHQ/sby.git
				synced 2025-10-31 04:52:30 +00:00 
			
		
		
		
	Add "skip" options (smtbmc only)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
		
							parent
							
								
									7ff783598f
								
							
						
					
					
						commit
						bf47da495b
					
				
					 3 changed files with 21 additions and 2 deletions
				
			
		|  | @ -159,6 +159,10 @@ options are: | ||||||
| |                  |            | engine. Other engines ignore this option in ``prove``   | | |                  |            | engine. Other engines ignore this option in ``prove``   | | ||||||
| |                  |            | mode. Default: ``20``                                   | | |                  |            | mode. Default: ``20``                                   | | ||||||
| +------------------+------------+---------------------------------------------------------+ | +------------------+------------+---------------------------------------------------------+ | ||||||
|  | | ``skip``         | ``bmc``,   | Skip the specified number of time steps. Only valid     | | ||||||
|  | |                  | ``cover``  | with smtbmc engine. All other engines are disabled when | | ||||||
|  | |                  |            | this option is used. Default: None                      | | ||||||
|  | +------------------+------------+---------------------------------------------------------+ | ||||||
| | ``append``       | ``bmc``,   | When generating a counter-example trace, add the        | | | ``append``       | ``bmc``,   | When generating a counter-example trace, add the        | | ||||||
| |                  | ``prove``, | specified number of cycles at the end of the trace.     | | |                  | ``prove``, | specified number of cycles at the end of the trace.     | | ||||||
| |                  | ``cover``  | Default: ``0``                                          | | |                  | ``cover``  | Default: ``0``                                          | | ||||||
|  |  | ||||||
|  | @ -497,6 +497,7 @@ class SbyJob: | ||||||
|         self.handle_int_option("timeout", None) |         self.handle_int_option("timeout", None) | ||||||
| 
 | 
 | ||||||
|         self.handle_str_option("smtc", None) |         self.handle_str_option("smtc", None) | ||||||
|  |         self.handle_int_option("skip", None) | ||||||
|         self.handle_str_option("tbtop", None) |         self.handle_str_option("tbtop", None) | ||||||
| 
 | 
 | ||||||
|         if self.opt_smtc is not None: |         if self.opt_smtc is not None: | ||||||
|  | @ -504,6 +505,14 @@ class SbyJob: | ||||||
|                 if engine[0] != "smtbmc": |                 if engine[0] != "smtbmc": | ||||||
|                     self.error("Option smtc is only valid for smtbmc engine.") |                     self.error("Option smtc is only valid for smtbmc engine.") | ||||||
| 
 | 
 | ||||||
|  |         if self.opt_skip is not None: | ||||||
|  |             if self.opt_skip == 0: | ||||||
|  |                 self.opt_skip = None | ||||||
|  |             else: | ||||||
|  |                 for engine in self.engines: | ||||||
|  |                     if engine[0] != "smtbmc": | ||||||
|  |                         self.error("Option skip is only valid for smtbmc engine.") | ||||||
|  | 
 | ||||||
|         self.copy_src() |         self.copy_src() | ||||||
| 
 | 
 | ||||||
|         if self.opt_mode == "bmc": |         if self.opt_mode == "bmc": | ||||||
|  |  | ||||||
|  | @ -121,9 +121,15 @@ def run(mode, job, engine_idx, engine): | ||||||
|     if not progress: |     if not progress: | ||||||
|         smtbmc_opts.append("--noprogress") |         smtbmc_opts.append("--noprogress") | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |     if job.opt_skip is not None: | ||||||
|  |         t_opt = "%d:%d" % (job.opt_skip, job.opt_depth) | ||||||
|  |     else: | ||||||
|  |         t_opt = "%d" % job.opt_depth | ||||||
|  | 
 | ||||||
|     task = SbyTask(job, taskname, job.model(model_name), |     task = SbyTask(job, taskname, job.model(model_name), | ||||||
|             "cd %s; %s %s -t %d --append %d --dump-vcd %s.vcd --dump-vlogtb %s_tb.v --dump-smtc %s.smtc model/design_%s.smt2" % |             "cd %s; %s %s -t %s --append %d --dump-vcd %s.vcd --dump-vlogtb %s_tb.v --dump-smtc %s.smtc model/design_%s.smt2" % | ||||||
|                     (job.workdir, job.exe_paths["smtbmc"], " ".join(smtbmc_opts), job.opt_depth, job.opt_append, trace_prefix, trace_prefix, trace_prefix, model_name), |                     (job.workdir, job.exe_paths["smtbmc"], " ".join(smtbmc_opts), t_opt, job.opt_append, trace_prefix, trace_prefix, trace_prefix, model_name), | ||||||
|             logfile=open(logfile_prefix + ".txt", "w"), logstderr=(not progress)) |             logfile=open(logfile_prefix + ".txt", "w"), logstderr=(not progress)) | ||||||
| 
 | 
 | ||||||
|     if mode == "prove_basecase": |     if mode == "prove_basecase": | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue