Research Article

PCIU: Hardware Implementations of an Efficient Packet Classification Algorithm with an Incremental Update Capability

Algorithm 1

if (rising_edge(CLK)) then
   count:= conv_integer(shift);
   store1:= (To_bitvector(input1) srl count); – srl (shift right operator)
   store2:= (To_bitvector(input2) srl count);
   actual1:=to_stdlogicvector(store1(24 to 31));
   actual2:=to_stdlogicvector(store2(24 to 31));
   if (actual1 < actual2) then
       if (((actual1 <= point) and (actual2 >= point))=true) then
        output <="00000000000000000000000000000001";
       else
        output <="00000000000000000000000000000000";
       end if;
   elsif (((actual1>= point) and (actual2<= point))=true) then
     output <="00000000000000000000000000000001";
   else
     output <="00000000000000000000000000000000";
   end if;
else
    null;
end if;