This I-level message alerts you to a poor programming practice and possible error:
IBM2804I I Boolean is compared with something other than ’1’b or ’0’b.
A boolean is a result of a comparison of two expressions or the result of anding, oring or negating booleans. As such, a boolean can have only the values ’1’b or ’0’b. If your code compares a boolean with something other than one of these values, it may reflect a problem (for instance, maybe the expression (a > b) = c was meant to be (a + b) = c ).
Note that the compiler will produce this message even if you compare a boolean to a value declared as BIT(1) STATIC INIT(’1’b). In this situation there is no programming error, but the compiler cannot generate as good as code as it would generate if the value were declared as BIT(1) VALUE(’1’b).