trout,
I have to agree with tlaskowski. I have just completed a CF-based WLAN design for the NIOS / NIOS II development board, and it is a non-trivial undertaking. I will outline the steps here - I cannot provide the IP itself without permission from my client.
1. Modify the Configuration Controller (MAX7000 device) to change its CF reset logic. The RESET signal is active-high for all modes but TrueIDE. The solution I used was to usurp the PLD_RECONFIGREQ_N signal and directly route it (through the MAX7k) to the CF reset pin. This allows the Cyclone to "directly" drive the CF RESET signal.
2. Implement a proper CompactFlash interface. Initially this was two Interface to User Logic blocks - one for Attribute Memory and one for I/O, each of which had worst-case fixed wait states (e.g., 600ns for Attribute, 3us for I/O). The final solution is written in Verilog and uses the WAIT# signal from the CF card to implement variable wait states. This is the IP I cannot share without permission - it is an Avalon-to-CompactFlash bridge that implements Attribute, I/O, and Common Memory accesses. It also contains a register to allow software to toggle power to the CF card, and to drive RESET during power-up as required by the spec. It is packaged as an SOPC Builder component (easy enough to do following AN333). This effort took perhaps 2-3 weeks, which included learning Verilog and fighting newbie FPGA developer mistakes such as an asynchronous input to a synchronous state machine.
3. Implement a device driver for your WLAN chipset and your OS. I was not using uCLinux, and I had a purchased WLAN device driver. This step is obviously required regardless of the bus interface used.
Regards, and best of luck,
Joe