1/1

|
Problem with or1200_mult_mac multipliers
by jt_eaton on Apr 14, 2012 |
jt_eaton
Posts: 142 Joined: Aug 18, 2008 Last seen: Sep 29, 2018 |
||
|
I have created a test bench to check out the multipliers in the or1200_mult_mac module. I did this by capturing the multiplies that are performed in the or1200-basic and or1200-mul tests and then adding some more to target boundary conditions. I then used this in a test bench that only instantiated the lower level multiplier block and ran it as fast as it could run.
The or1200-mul test takes 33 minutes on my machine. The new testbench takes about 1/2 second to cover the same vectors. Unit test benches are the only way to verify something like a multiplier. The problem was that after setting up the test for the generic mutiplier I repeated it using the asic multiplier and the serial multiplier. While the generic and asic designs matched, the serial design did have some differences and after taking a closer look at the results then none of them matched my hp16-c calculator. The differences are only in the upper 32 bits from the 64 bit result so most of the time this will never make any difference to the user. But it looks like the upper 32 bits are used to get the overflow result and the multiply and accumulate does operate on all 64 bits. That could affect the user Here is an example of what I am seeing A x B = generic serial hp-16c 1223_3455 7ed4_3562 08fc_5cb1_67b3_a18a 08fc_5cb1_67b3_a18a 08fc_5cb1_67b3_a18a 1223_3455 fed4_3562 ffea_c286_e7b3_a18a 120d_f6db_e7b3_a18a 120d_f6db_e7b3_a18a 9223_3455 7ed4_3562 c992_4200_67b3_a18a 4866_7762_67b3_a18a 4866_7762_67b3_a18a 9223_3455 fed4_3562 0080_a7d5_e7b3_a18a 9178_118c_e7b3_a18a 1178_118c_e7b3_a18a I do have a process that makes it easy to set up and run unit tests on any submodule in any design by using ip-xact files. As soon as we get the repository set up I can show everyone how to create these tests. John Eaton |
|||
|
RE: Problem with or1200_mult_mac multipliers
by olof on Apr 16, 2012 |
olof
Posts: 218 Joined: Feb 10, 2010 Last seen: Dec 17, 2018 |
||
|
Hi John,
Good work, and I agree that we could use more unit tests. They would be a welcome addition to the or1200 test bench. For some parts, I would even like to see formal verification in the long run. Could you please file a bug about this on bugzilla, so that it doesn't get lost. I'm trying to collect all critical bugs in order to make a new or1200 release soon. -- Olof Kindgren ______________________________________________ ORSoC Website: www.orsoc.se Email: olof.kindgren@orsoc.se ______________________________________________ FPGA, ASIC, DSP - embedded SoC design |
|||
|
RE: Problem with or1200_mult_mac multipliers
by jt_eaton on Apr 16, 2012 |
jt_eaton
Posts: 142 Joined: Aug 18, 2008 Last seen: Sep 29, 2018 |
||
|
This may be an icarus issue.The generic multiplier converts into integer and then multiplies. If I leave out the conversion then I get the right answers. John Eaton
Hi John,
Good work, and I agree that we could use more unit tests. They would be a welcome addition to the or1200 test bench. For some parts, I would even like to see formal verification in the long run. Could you please file a bug about this on bugzilla, so that it doesn't get lost. I'm trying to collect all critical bugs in order to make a new or1200 release soon. -- Olof Kindgren ______________________________________________ ORSoC Website: www.orsoc.se Email: olof.kindgren@orsoc.se ______________________________________________ FPGA, ASIC, DSP - embedded SoC design |
|||
|
RE: Problem with or1200_mult_mac multipliers
by olof on Apr 17, 2012 |
olof
Posts: 218 Joined: Feb 10, 2010 Last seen: Dec 17, 2018 |
||
|
An Icarus bug sounds scary. Have you isolated the case and tested it with other simulators?
-- Olof Kindgren ______________________________________________ ORSoC Website: www.orsoc.se Email: olof.kindgren@orsoc.se ______________________________________________ FPGA, ASIC, DSP - embedded SoC design |
|||
1/1

