back.pysim: undriven comb signals should return to reset value.
This commit is contained in:
		
							parent
							
								
									b58715c5dc
								
							
						
					
					
						commit
						b34c1a9ad0
					
				|  | @ -326,8 +326,13 @@ class Simulator: | ||||||
|                     self._sync_signals.update(signals) |                     self._sync_signals.update(signals) | ||||||
|                     self._domain_signals[domain].update(signals) |                     self._domain_signals[domain].update(signals) | ||||||
| 
 | 
 | ||||||
|  |             statements = [] | ||||||
|  |             for signal in fragment.iter_comb(): | ||||||
|  |                 statements.append(signal.eq(signal.reset)) | ||||||
|  |             statements += fragment.statements | ||||||
|  | 
 | ||||||
|             compiler = _StatementCompiler() |             compiler = _StatementCompiler() | ||||||
|             funclet  = compiler(fragment.statements) |             funclet  = compiler(statements) | ||||||
|             for signal in compiler.sensitivity: |             for signal in compiler.sensitivity: | ||||||
|                 self._add_funclet(signal, funclet) |                 self._add_funclet(signal, funclet) | ||||||
|             for domain, cd in fragment.domains.items(): |             for domain, cd in fragment.domains.items(): | ||||||
|  |  | ||||||
|  | @ -39,7 +39,8 @@ class Fragment: | ||||||
|                 yield domain, signal |                 yield domain, signal | ||||||
| 
 | 
 | ||||||
|     def iter_comb(self): |     def iter_comb(self): | ||||||
|         yield from self.drivers[None] |         if None in self.drivers: | ||||||
|  |             yield from self.drivers[None] | ||||||
| 
 | 
 | ||||||
|     def iter_sync(self): |     def iter_sync(self): | ||||||
|         for domain, signals in self.drivers.items(): |         for domain, signals in self.drivers.items(): | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 whitequark
						whitequark