I'm wondering what XORCY and MUXCY are?
XORCY and MUXCY are Xilinx resources in a logic cell (called a SLICE in Xilinx speak). Depending on the family used, each slice will have some limited number of those resources, along with some limited number of either a 4 input or 6-input LUT .
XORCY is used for addition (binary addition is simply XOR),and in combination with MUXCY it provides a fast carry propogate logic to the next XORCY (basically a 2-bit full adder). A typical 2-bit full adder uses 3 XOR gates and 2 AND gates... but the carry logic can be done with a MUX, so they call it MUXCY, because the MUX can also be used for other things in a slice when it's not being used for carry logic propagation.
How all this is connected up inside the FPGA I suppose I'll leave for some future research.
You can view it on your tools. Look for the gate level viewer. Although I can't know exactly how your design was synthesized, your design is simple enough that I can make a reasonable guess here: it seems your design used 25 flip-flops total, and it seems like 23 are the registers for your counter (which turned out to be a 23-bit counter, actually, not a 24-bit counter as you asked for; the synthesis step was smart enough to know you didn't need 24 bits). The 2 remaining FFs are used for other things that are not part of the 23-bit counter (likely the 2Hz registered output). The outputs of each of the 23 FFs are going to be routed back to one input of an XORCY (2-input XOR); the second input of each XORCY will be hardwired to logic 0, except the first one, which is hardwired to logic 1. Thus you have 23 XOR gates, with the A inputs tied to the Q outputs of the FFs and the B inputs tied to X'000001', ; the output of each XORCY gate is sent back to the FF D-input. Thus, it takes the current value of the 23-bit counter, adds 1 to it, and registers it again in the FF, on each clock cycle. The MUXCY is designed to propagate any carry bits up the chain.
Finally, the AND and INV will be glue logic that was needed somewhere.
Most likely, it also programs the interconnect to wire the Q outputs of each FF back to the address inputs of the LUTS, and uses the LUTS as a comparator to hex 4C4B40 (5,000,000
10) to output logic to drive the reset of the counter. I think it did that because it is most efficient in terms of LUT resources used (slices), and the design output didn't show any additional gates used.
If it used more logic gates as comparators then it would need to use more slices and longer interconnects, and it would waste the LUTS of the counter slices as well as the slices needed for the additional logic gates, and thus use more area. So I think it chose not to use more gates (or muxes) but to use the (what would otherwise be unused) LUTS that are on the same slices as the FFs. Even though it seems like a waste to use LUTS as a simple comparator, in this case it's not really, because those are otherwise unused.