mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Explain exact semantics of switch and case rules in the manual.
This commit is contained in:
		
							parent
							
								
									df6576edc8
								
							
						
					
					
						commit
						addf01d45d
					
				
					 1 changed files with 12 additions and 0 deletions
				
			
		|  | @ -350,6 +350,18 @@ and this bit is a one (the second ``1'').} for {\tt \textbackslash{}reset == 1} | |||
| sets {\tt \$0\textbackslash{}q[0:0]} to the value of {\tt \textbackslash{}d} if {\tt | ||||
| \textbackslash{}enable} is active (lines $6 \dots 11$). | ||||
| 
 | ||||
| A case can specify zero or more compare values that will determine whether it matches. Each of the compare values | ||||
| must be the exact same width as the control signal. When more than one compare value is specified, the case matches | ||||
| if any of them matches the control signal; when zero compare values are specified, the case always matches (i.e. | ||||
| it is the default case). | ||||
| 
 | ||||
| A switch prioritizes cases from first to last: multiple cases can match, but only the first matched case becomes | ||||
| active. This normally synthesizes to a priority encoder. The {\tt parallel\_case} attribute allows passes to assume | ||||
| that no more than one case will match, and {\tt full\_case} attribute allows passes to assume that exactly one | ||||
| case will match; if these invariants are ever dynamically violated, the behavior is undefined. These attributes | ||||
| are useful when an invariant invisible to the synthesizer causes the control signal to never take certain | ||||
| bit patterns. | ||||
| 
 | ||||
| The lines $13 \dots 16$  then cause {\tt \textbackslash{}q} to be updated whenever there is | ||||
| a positive clock edge on {\tt \textbackslash{}clock} or {\tt \textbackslash{}reset}. | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue