ominux / vtr-verilog-to-routing

Automatically exported from code.google.com/p/vtr-verilog-to-routing
0 stars 0 forks source link

ODIN-II generates more LUTs with adder #53

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?

I have attached three xml files with the following run commands:

1. This xml run is directly from the nightly build version# 1342 (Dec.28, 2012).
   Other recent nightly builds have the same issue, described below
   in the "Expected Output" section. 
perl scripts/run_vtr_flow.pl benchmarks/verilog/sha.v 
arch/timing/k4_N1_no_cluster.xml

2. This run has the xml arch file in 1 above with the adder model added in.
perl scripts/run_vtr_flow.pl benchmarks/verilog/sha.v 
arch/timing/k4_N1_no_cluster_with_adder.xml

3. With this run, the xml is copied from 1 above, but modified slightly
   to make it run in the previous official release (Feb 2012).
perl scripts/run_vtr_flow.pl benchmarks/verilog/sha.v 
arch/timing/k4_N1_no_cluster_rel1_0.xml

What is the expected output? What do you see instead?

With the adder inference in the current nightly build, we expect 
the number of LUTs goes down, but instead it goes up by 32% 
(plus the adders) in the case of "sha", compared to the previous 
official release.
Other designs have similar behaviour.

What version of the product are you using? On what operating system?
1. VTR nightly release versions 1294 (Nov 28, 2012) and 1342 (Dec 28, 2012).
2. VTR official release in Feb 2012. 
OS = Ubuntu Linux.

Please provide any additional information below.

Outputs from vpr.out:

1. Run design "sha" with arch/timing/k4_N1_no_cluster.xml in 2012-11-28 nightly 
build, I got:
        1 LUTs of size 0
        3 LUTs of size 1
        147 LUTs of size 2
        494 LUTs of size 3
        2459 LUTs of size 4
        38 of type input
        36 of type output
        911 of type latch
        3104 of type names
Total LUT#=3104

2. Run design "sha" with arch/timing/k4_N1_no_cluster.xml plus adder in 
2012-11-28 nightly build, I got:
        10 LUTs of size 0
        3 LUTs of size 1
        134 LUTs of size 2
        674 LUTs of size 3
        3073 LUTs of size 4
        38 of type input
        36 of type output
        911 of type latch
        3894 of type names
        329 of type adder
     Total LUT# = 3894 plus 329 adders, 25% more LUTs than without adder 
(3894 vs 3104); 32% more than Feb 2012 release (3894 vs 2951).

3. Modify k4_N1_no_cluster.xml a bit for Feb 2012 release, the same run I got
       1 LUTs of size 0
       3 LUTs of size 1
       74 LUTs of size 2
       639 LUTs of size 3
       2234 LUTs of size 4
       2951 LUTs in input netlist
       911 FFs in input netlist
    Total LUT# = 2951

Please take a look.
Thanks.
Jianshe 

Original issue reported on code.google.com by Jas...@efinixinc.com on 28 Dec 2012 at 9:58

Attachments:

GoogleCodeExporter commented 9 years ago
Yes, I reproduce the same results for 4-LUTs in the latest version.  This has 
probably something to do with technology mapping.  When I map to 6-LUTs, the 
opposite effect happens:

Carry-chains: 2001 LUTs
No carry-chains: 2277 LUTs

Original comment by JasonKai...@gmail.com on 8 Jan 2013 at 7:52