This did not work
as it looked like the timing was not right.
What does this exactly mean? Explain "did not work"
Don´t know what you mean "the timing was not right".. please explain.
***
From my understanding this should work for the HIGHEST digit.
I even don´t know how many digits you have.
But you said "ripple" ... there is no ripple handling at all.
Not even a try.
Did you at least try it on paper?
If you want to design something ... you also need to decide how to test it. Did you think about useful test patterns?
For 4 digits it could be: 0x0000, 0x0005, 0x0010 ... and so on
The use of the OR gates is a good way ... then just use your paper and write down all the outputs of the OR gates ... no need to connect them to the BL input for this.
Then write down the expected BL states. ....
It´s always step-by-step ....
Klaus