temelmertcan / multgen

Integer Multiplier Generator for Verilog
BSD 3-Clause "New" or "Revised" License
16 stars 3 forks source link

Not generating radix 4, 8 and 16 multipliers #1

Closed engrakmal closed 11 months ago

engrakmal commented 11 months ago

multgen is not generating radix, 4, 8 and 16 signed/unsigned multipliers. The number of partial products are same as Booth 2. The .sv file name also has B2 in it. Kindly check.

temelmertcan commented 11 months ago

Thank you for reporting an issue. Can you provide the steps that lead to this issue for me to recreate it?

engrakmal commented 11 months ago

Yes. following is the command sequence:

run ./multgen -help to see more options.

  1. Stand-alone (Isolated) Multiplier
  2. MAC (a * b + c)
  3. Merged Four Multipliers
  4. Dot Product
  5. Only a Vector Adder Select Multiplier Type: 1
  6. Wallace Tree
  7. Dadda Tree
  8. 4-to-2 compressor Tree Select Summation Tree Algorithm: 1
  9. Signed
  10. Unsigned Signed or Unsigned Multiplication?: 1
  11. Simple
  12. Booth radix-2
  13. Booth radix-4
  14. Booth radix-8
  15. Booth radix-16 Select Partial Product Generation Algorithm: 4
  16. Ripple Carry Adder
  17. Han-Carlson Adder
  18. Ladner-Fischer Adder
  19. Kogge-Stone Adder
  20. Brent-Kung Adder
  21. J. Sklansky – Conditional Adder Select Final Stage Adder Algorithm: 1 Enter IN1 (Multiplier) size: 8 Enter IN2 (Multiplicand) size: 8 Enter Output size (any value less than "16" will truncate the result): 16 Enter Shift Amount (maximum allowed value is 15): 0 Verilog models circuit using 4-valued logic (0,1,X, and Z). This generator may create designs that has Xes in it. This may be a difficult problem for some verification tools. If you want a more realistic design and want to challange a verification tool, allow 4-valued logic below. If you want to keep it at 2-valued (0,1) logic, you have the option to do so
  22. Yes, allow Xes
  23. No, do not allow Xes Do you want to allow Xes in the design? 2

Multiplier Module (WT_SB2_RP_8x8_noX) is created. Inputs: IN1[7:0], IN2[7:0] Output: result[15:0] Function: result = IN1 * IN2 (signed)

Adder Module (RP_11) is created. Inputs: IN1[10:0], IN2[10:0] Output: result[11:0] Function: result=IN1 + IN2

Written to WT_SB2_RP_8x8_noX_multgen.sv

engrakmal commented 11 months ago

It is working fine using options in CLI. ./multgen -type StandAlone -tree WT -pp SB8 -adder RP -in1size 8 -in2size 8 -outsize 16 -shift 0

But not generating exact multiplier using GUI.

temelmertcan commented 11 months ago

Thank you very much for reporting the issue and giving instructions to recreate it. The issue should be now fixed. Please let me know if you have further problems.