Rick,
I am a former ASIC designer. I think I understand this part well. I do have a couple concerns. First I want a reset methodology that is device independent and simulates well for any ASIC or FPGA technology not just specific to Xilinx. Hence, everything that requires reset will need the synchronized reset. I agree most data path does not need reset (except for on some ASIC designs to get the device to pass vectors more easily on the tester).
My second concern is that selective reset is not for everyone. For some this methodology will cause chaos. For a design review with selective reset, this is just one more item that needs to be reviewed in detail.
To me this seems like Chaos**n. Not that it will not work, it just adds more details you need to manage.
This methodology would have to buy me something significant (speed or device size) for me to want to do additional analysis and verification to prove that a circuit designed as above actually works under all conditions.
This sounds like it would address my needs nicely. What do you connect reset to? Do you just leave it floating? What do you do with it in simulation?
If there is something here that would work with XST, Synplicity, and Mentor, without changing the code, this would make me happy. Especially if the only thing I needed to change for each FPGA/ASIC technology is the reset block and where the power-on reset comes from.
On ASICs reset is explicit. On your flow above with Xilinx, I code reset on the register, hook it to ?? or leave it unconnected, and then "magically" it gets connected to GSR.
Is there a datasheet, manual, or appnote you recommend reading on configuration.
Cheers, Jim