Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
14 years ago

Radix-10 Multiplier

Hello there

I am looking for a shift and add style Radix-10 multiplier for Quartus II.

Does anyone have some coding I could use to make some comparisons, it doesn't have to go at 100mph, I just need to make some aspect ratio comparisons.

Thanks

Will

5 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    You cant shift BCD numbers. you cant add them either. (easily anyway).

    Wouldnt it be best to do a BCD -> binary conversion, do the multiplication, and then convert back?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Yea I'd imagine that would work just fine

    Basically I'm looking for a solution to the problem in Pirhami' 'Computer Arithmetic' problem 10.16a. It is essentially a radix-16 multiplier with a BCD input, that sounds very similar to your suggestion. It only has to be 16 x 16 bit multiplication.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    a 16x16 multiplaction will take just a single multiplier, with the additional logic for the BCD conversion. Not very expensive.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    You cant shift BCD numbers. you cant add them either. (easily anyway).

    Wouldnt it be best to do a BCD -> binary conversion, do the multiplication, and then convert back?

    --- Quote End ---

    You can shift BCD numbers, but only by '4' bits at a time, which comes down by multiplying by 10 - decimal that is :)

    I think that going from BCD to binary and back, is a bit cheating?

    I peeked into the exercise (via the 'look inside' function on Amazon ...). Interesting book, but pricey :(

    Just for the fun of doing it in BCD: you can do long multiplication per BCD digit as you would do per bit in standard binary. The adders would have to be BCD-capable, working with blocks of 4 binary bits and with appropriate carry-rules.

    I'm not sure that the effort in converting from BCD to Binary and back to BCD would take less resources, or be any faster?