(inOp_d_trunc==12) ? (in1_d ^ in2_d) :
0;
+ wire firing_condition;
+ assign firing_condition =
+ (inOp_d_trunc==0) ? `in1_full :
+ (inOp_d_trunc==1) ? `in2_full :
+ (inOp_d_trunc==7) ? `in1_full :
+ (inOp_d_trunc==8) ? `in2_full :
+ ((`in1_full) && (`in2_full));
+
always @(posedge clk) begin
if (rst) begin
`reset
out_draining <= 0;
if (inOp_d_trunc==0) `drain_in1
else if (inOp_d_trunc==1) `drain_in2
+ else if (inOp_d_trunc==7) `drain_in1
+ else if (inOp_d_trunc==8) `drain_in2
else if (inOp_d_trunc==9 && both_negative) begin `drain_in1 `drain_in2 end
else if (inOp_d_trunc==4 && greater) `drain_in1
else if (inOp_d_trunc==5 && greater) `drain_in2
`drain_in2
end
end
- if (!out_draining && `out_empty && `in1_full && `in2_full && `inOp_full) begin
- `fill_out
+ if (!out_draining && `out_empty && firing_condition && `inOp_full) begin
+ if (inOp_d_trunc!=7 && inOp_d_trunc!=8) `fill_out
out_draining <= 1;
end
end