(primitive-part "BinaryFunc" (parameters ("outputWidth" (named-type "cardinal")) ("inputAWidth" (named-type "cardinal")) ("inputBWidth" (named-type "cardinal")) ("op" (named-type "BinaryOperator")) ("outputIsSigned" (named-type "boolean")) ("inputAIsSigned" (named-type "boolean")) ("inputBIsSigned" (named-type "boolean")) ) (ports (port "out" passive output (numeric-type #f (param "outputWidth"))) (port "inpA" active input (numeric-type #f (param "inputAWidth"))) (port "inpB" active input (numeric-type #f (param "inputBWidth"))) ) (symbol (centre-string (case (param "op") (("Add") "+") (("Subtract") "-") (("Equals") "=") (("NotEquals") "/=") (("LessThan") "<") (("GreaterThan") ">") (("LessOrEquals") "<=") (("GreaterOrEquals") ">=") (("And") "and") (("Or") "or") (("Xor") "xor") (else (param "op")) )) ) (implementation (style "four_b_rb" (include tech "common" "data-single-broad/BinaryFunc")) (style "dual_b" (include tech "common" "data-dual/BinaryFunc")) (style "one_of_2_4" (include tech "common" "data-1of4/BinaryFunc")) (style "four_e_e" (include tech "common" "data-single-broad/BinaryFunc")) ) )