Hi yechen,
1)If your design includes popular components like PCI, DMA, DSP, RISC etc. you better buy them. There are many availabe cores you can choose from, and they are tested by suckers who bought these cores before you did! Using IP cores will dramatically reduce your verification effort (and design of course).
You can ask your ASIC vendor to recommend some cores.
2) You don't need any special tools. Just make sure that your documentation is clear, cores are vendor-independent and parametrizable (recommended).
regards,
Buzkiller.