Forum Discussion
Altera_Forum
Honored Contributor
18 years agoTrue, the LRM doesn't say it should assign X, but it doesn't say it can't or it shouldn't. I definitely would expect it would assign the unknown/undetermined value. Because that's exactly the situation, and that's what would match a synthesis behavior that followed the standard. In other words, the simulator can't know or predict what would happen at the hardware. The value is simply unknown.
If you are using 2-state types (such as bit), then of course it won't assign X. It is your responsability if you decided to use an "unsafe" type in a potentially "dangerous" situation. Unsafe in the sense that it's a type that has less chances to spot errors under simulation. This is not specific to the "unique" keyword. Anytime you use a 2-state type, you lost the chances of catching an 'X'. In the worst case, you still get a warning, which is light years better than nothing as you get when using the full_case synthesis attribute.