If the logic was created with latches, they would have pos-edge and neg-edge clocked latches. You can not make functional logic with latches of all the same phase, unless you have no feedback. Sometimes, one can design multiple latches of the same phase clock in series but in these, they still need at least one of the opposite phase before there is feedback. This same phase latch is used to hold a value longer that might have a lot of logic. In these cases, there is a delayed clock. I doubt this type of design is ever used as the programmable part of a FPGA but may be used in RAM blocks within a FPGA.
Using edge clocked flops, it can be done. In a FPGA, the compiler you use, should understand the terms setup and hold time limitations.
When flops are made, even inside TTL ICs, they are usually made with two latches. The clocks are controlled so that on the specified D to Q, the input latch is guaranteed to be opaque when the output latch is made transparent. This is done by slightly distorting the threshold of the clocks into the latches. In CMOS designs for high speed computing, it is not uncommon to see both latch transparent when the clock goes high ( for pos-edge flop ). This type of design requires a minimum delay between flops. It makes for faster logic but requires more careful design.
When designing logic, one has to be careful to understand setup time and hold time limitations. For TTL, with just buffers, one has enough delay to use the same edge clocks with flops. One can do latch design as well but again, you still need to understand setup and hold times.
It is possible to make the same phase latch designs but that requires minimum delay and a very short clock pulse, not a typical symmetric 50/50 duty cycle clock.
Dwight