C言語では、ブール演算と、論理演算(条件判定などに使う)を分けている。
これはCの「真」「偽」の判定が、「0以外」「0」となっていて、偽の反転は真だけれど、真の反転は偽にはならないという事情から必須。
でも、論理回路だったら、論理演算とブール演算、どちらも1ビットの信号で行なえるので、分ける必然性はほとんどないので、SFLでは分けていない。
一方、Verilogユーザから、論理演算をサポートして欲しいという要望があり、それ自体は大した手間ではないので、NSLで「!」「&&」「||」をサポートした。
これらの演算はC言語互換にしている。つまり、0が偽で、0以外が真の扱い。
これはCの「真」「偽」の判定が、「0以外」「0」となっていて、偽の反転は真だけれど、真の反転は偽にはならないという事情から必須。
でも、論理回路だったら、論理演算とブール演算、どちらも1ビットの信号で行なえるので、分ける必然性はほとんどないので、SFLでは分けていない。
一方、Verilogユーザから、論理演算をサポートして欲しいという要望があり、それ自体は大した手間ではないので、NSLで「!」「&&」「||」をサポートした。
これらの演算はC言語互換にしている。つまり、0が偽で、0以外が真の扱い。