mprfgen is a multi-port memory generator that can be used for VHDL designs. It can generate either generic or Xilinx-specific (through component instantiation) multi-port memories.
KCPSM3 Assembler is an alternative implementation of the KCPSM3 assembly language for Xilinx PicoBlaze written in portable C. Its main target is the Linux OS.