anchor.diff:  `ifdef DEBUG
         indication.error(extend(pack(v.errorType)), v.id);
   `endif
  -      if (verbose) $display("MemMgmt:: %d free_error: memMgmt error", cycle);
  +      if (verbose) $display("(%0d) MemMgmt:: %d free_error: memMgmt error", $time, cycle);
      endrule
   
      (* descending_urgency="initialization, del_id_metadata, del_page_metadata, read_next_page_metadata" *)
  
positive.code:          tagged Valid .page: begin
              portsel(idmap, 1).request.put(BRAMRequest{write:True, responseOnWrite:False, address: idToFree, datain: tagged Invalid});
              portsel(pagemap, 1).request.put(BRAMRequest{write:False, responseOnWrite:False, address: page, datain:?});
              $display("MemMgmt:: %d free_idmap ", cycle, fshow(page));
              currSegment <= page;
           end
           tagged Invalid: begin
  
negative.code:    rule handle_alloc_req;
        let v <- toGet(mallcRequestFifo).get;
        let id <- proxy.idResponse.get;
        if (verbose) $display("(%0d) MemMgmt:: %d Allocating pages for packet id %d packet size %d", $time, cycle, id, v.req);
        // Corner case when v is close to 4kb.
        let mask = (1 << valueOf(PageAddrLen)) - 1;
        Bit#(PageIdx) nPages = truncate(((v.req + mask) & (~mask)) >> valueOf(PageAddrLen));
        if (verbose) $display("(%0d) MemMgmt:: %d handle_malloc allocate nPage=%d", $time, cycle, nPages);
        let hasSpace <- freePageCount.maybeDecrement(unpack(nPages));
        if (hasSpace) begin
           stage2Params.enq(Stage2Params{
  