Hi all. There is obviously no way derive a clean, jitter-compliant 2.048MHz clock from a 19.44MHz clock in the digital domain. You need an external PLL.
However, if you think about what you need the clock for then it may turn out that you don't need actually need it. For example, if your application is an STM1-> E1 demux (ie: it takes an STM1 in and transmits 63 E1s out) then there are other solutions. It may seem that you need a 2.048MHz clock to drive the E1 LIUs, but newer LIUs from the likes of IDT have internal jitter attenuators which meen you can clock transmit data into them at a faster "gapped" clock, and the LIU takes care of generating the clean 2.048MHz data stream. "Gapping" the clock down to an effective 2.048MHz data rate is something that is easyily done in the digital domain, without resorting to external PLLs.
A second scenario - if the 2.048MHz clock is only to be used internally to the FPGA then I'd run that circuitry at 19.44MHz, but "chip-enable" it down to an effective 2.048MHz. The "chip-enable" can be derived from a DDS, which will give an accurate long-term 2.048MHz rate, but be very jittery.
However, if you really need to drive a clean 2.048MHz clock out of your FPGA then I think you'll need the external PLL...
J