IF you write your own - you'll need two - one for D0 and one for D1.
I have an SDR SERDES running at n clock rate (posedge of 303MHz), but the ODDR2 need to receive new bit (D0 or D1, depending on posedge or negedge) every 2n clock ticks (both posedge and negedge of 303MHz).
I do not understand how is having two separate OSERDES would help to solve the clock rate matching issue ?
For example, look at 8:1 DDR OSERDES which takes 8 inputs D0,D1,D2,D3,D4,D5,D6,D7 and output them serially
The values supplied by D0,D2,D4,D6 are clocked out on the rising edge
The values supplied by D1,D3,D5,D7 are clocked out on the falling edge
You can then create two 4:1 SDR OSERDES modules.
One of the 2 modules will take D0,D2,D4,D6 inputs and output them serially. You route its output to the D0 pin of the ODDR.
The other will output D1,D3,D5,D7 serially. You route its output to the D1 pin of the ODDR.
But this is only if you write your own OSERDES.
The hardware OSERDES will have built-in DDR mode. Even if you put it in SDR mode, it cannot be routed to ODDR because ODDR and OSERDES are two incarnations of the same OLOGIC block.