I am implementing a circuit that takes two ASCII values that are in the range 0x30 - 0x39[0 - 9] for the tens digit and ones digit, and then combine them, and output a proper 8-bit binary value reflecting this. D1 is the ten's place digit, D0 is the one's place digit
For example: D1 = 0x311, D0 = 0x32[2]. This means the number is 12, so the output would be 00001100. I have been able to implement this by taking D1 and D0, turning those into binary values, and then using complicated logic to combine them into the respective number. So the output can be any value 0 - 99.
It takes a staggeringly large amount of gates. See below. At this point I'm wondering if it is more efficient to just directly compare the ASCII values and use a chain of AND gates(also inefficient). Does anyone have advice for doing this more efficiently? Also, I don't want to use any components that are analog in some way.