Binary to BCD conversion besides double dabble

I'm looking for a logic circuit to convert 16-bit binary to 5-digit BCD, but one that is smaller / uses less gates than double dabble.

Are there any other binary-to-BCD conversion circuits besides double dabble?

• You can implement components similar to the 5-in, 5-out implementation 74X185, but with more bits/terminals. Looking a bit closer, you'll see double dabble again, closer still, gates, then switches. One obvious approach would be to describe the full bundle of 19 binary functions of 16 variables and have it "optimised" and realised/mapped by some tool chain. See Kuba Ober's answer for an essentially 2 level and/or(NAND/NAND) + register implementation. Commented Apr 5, 2023 at 19:21
• (16 bit to 5×7 segment signals may or may not be a more useful circuit - think integrated.) Commented Apr 5, 2023 at 19:29
• Jason, do you want to use the BCD for BCD-7-seg displays? If so, that's a very different question (in terms of optimizing, anyway.) Or do you need the BCD for something else? You can just lay out the 16-bit to BCD (the upper-most BCD digit only needs 3 bits, not 4) and feed it to an algorithm to minimize, if you want. Or you can start there and hand-optimize its output. (You can almost always do better for something of this complexity -- even for algorithms that claim to 'minimize'.) Just for reference only, here's the generic double-dabble approach. Commented Apr 6, 2023 at 0:10
• For driving 7 segment displays. Commented Apr 6, 2023 at 1:33