It's hard for me to think of ways to answer such questions without putting up a shopping list.
I'm not sure why people down-voted the question but up-voted the answer. We surely get those kinds of questions here. Here's a slightly different example: Synchronous rectification simulation. Or How to get started with Microchip's PIC12 family programming?