In this chapter, the results of experiments we collected will be illustrated. And all of them are conducted on workstation running Linux with Intel(R) Xeon(R) CPU E5-2643 v2 3.50 GHz system with 70 GB RAM. Both proposed algorithm and the control group, along with LineDiff Entropy algorithm, were implemented in C++
programming language compiled by g++ (GCC) v.4.8.2 released on 20140120.
Table 4.1 is adopted from Table 3.1, and it shows the specification of our implementation. Basically our proposed router and the control group are both designed for 14/16-nm technology node just like we introduced in section 3.1. The only difference between them is the strategies we’ve expressed in the previous chapter. The first strategy needs the routing track to be 84 nm in the width, resulting in a drop in routability. So a procedure which checks whether the source pin is able to connect the target pin directly, simple route, is taken place. But the most important modification is the calculation of the cost in A* search. Proposed router takes advantage of both distance and the performance of the patterns in LineDiff Entropy algorithm. While the control group in our implementation is a detailed router which contains only the original A* search algorithm to find the shortest path. And all other specifications in both designs are just the basic requirements in the technology roadmap. Expected compression ratio is 450, estimated in section 1.1 and it’s the ultimate goal we are trying to reach out.
The input cases were generated at random by their coordinates, and the original point was set on the top-left corner. Figure 4.1 shows a concept of this input file generation. There are three pairs of source and target pins in this figure, and our detailed router should find paths to connect them separately without any intersection. Another
constraint set in generating input is that each source and target node cannot be in the same grid in neither proposed router nor control group. Note that this figure does not show the exact input file format, the actual format is just pairs and pairs of coordinates of pins.
Groups Proposed A* search
Track width 84 nm 80 nm
Simple route Yes No
Cost evaluation
Distance and LDE(*) preference
Distance only
Wire width 40 nm
Pixel size 7nm * 7nm
Pixel depth 5 bits, 32 gray-level scales
Number of layers 3 layers
Expected CR 450
Table 4.1 Spec. of the implementation, (*)LDE: LineDiff Entropy algorithm.
Figure 4.1 Concept of input generation.
The following tables are the results of our experiments. Each of these tables contains four sets of input cases generated at random, and they are grouped by the size of the input circuit. We named the input cases in Table 4.2 the huge cases because each of them contains 10,000 wires to be routed. And the other cases are called large, medium, small, and tiny cases for Table 4.3, Table 4.4, Table 4.5, and Table 4.6 respectively, because of the number of wires needing routed is 8000, 5000, 3000, and 1000. After these complicated information, Table 4.7 shows the organized result of all.
In these tables, the basic information of each cases is listed on the top. The identifiers of each input cases were given just for convenience. In each cases, all the results can be viewed by two parts. The information on the left is from the control group which was implemented using A* search algorithm only, while the one on the right-hand side is our proposed detailed router. There are four topics we want to discuss, including routability, total wire length, and the two most-important issues in MEBDW systems, decompression rate and data compression ratio in LineDiff Entropy.
Routability is the primary concern for every router, and it’s defined by the success rate while finding the actual path for each wire. In the proposed detailed router, we designed a simple route process in order to deal with the severe problem in routability caused by making wires on-grid. And the results show that the proposed algorithm does route more wires than pure A* search. Actually the proposed detailed router has routability more than 95% in every single test case and 97.59% on average.
But everything has its price. To reach such a high routability and the benefits in other aspects, the router usually needs to take longer detours. So in Table 4.7 we can see that the total wire length in the proposed algorithm is 23.43% more than the control group. It’s actually not negligible, but compared to the contribution of this work, we should try to do something more in the future to fix this.
The two issues we want to discuss next, which are also extremely important in MEBDW systems, are decompression rate and compression ratio. Decompression hardware should be directly attached to the electron beam writer, so decompression rate being as fast as possible can save the hardware resources and make sure the decompressed data sent to the writers in real time. In our experiment results, we can see that the decompression time in the proposed router and the control group are almost the same. So we can conclude that our design did not affect the decompression rate.
As for the compression ratio, just like we estimated, has a great improvement. The compression ratio (CR) here is defined as the original data size divided by the compressed data size. The results show that CR in proposed router is improved by at most 1.67 times than the router with only A* search. And in Table 4.7 we can also know that our design has a roughly 1.42 times on average better than the control group in CR.
But aside from the multiples we’ve mentioned above, the important part is the goal of our design. In the previous section we know that the desired CR is about 450 in manufacturing. The results also show that in most of the input case, proposed router reach this target, while the control group doesn’t.
These two important issues are also plotted in Figure 4.2 and Figure 4.3. Note that in these figures, the numbers had been taken average in each size of input. We can see in Figure 4.2 that the decompression time is nearly the same in both designs. And Figure 4.3 shows CR in both designs, with the black line in the middle shows the ultimate goal, 450 times, of compression ratio in our research.
Input case ID. Huge_#1 Huge_#2
# of wires 10000 10000
Area (nm2) 97440 * 97440 97440 * 97440
Group A* search Proposed A* search Proposed
Routability 84.03% 93.40% 91.55% 97.48%
Total wire length (nm) 29614800 37031228 14799960 18289352
Decompression time (s) 38.51 37 37.02 37.72
Original data size (Byte) 1796598720 1796598720 1796598720 1796598720 Compressed data size (Byte) 6795886 4066245 5513903 3660736 Compression ratio 264.3656353 441.8323834 325.830672 490.7752758
CR Improvement 1.671292802 1.506227983
Total wire length (nm) 14773440 18223484 19912040 24538916
Decompression time (s) 37.82 37.24 34.74 35.39
Original data size (Byte) 1796598720 1796598720 1796598720 1796598720 Compressed data size (Byte) 5539075 3655172 5962215 3807019 Compression ratio 324.3499537 491.522347 301.3307504 471.9174556
CR Improvement 1.515407483 1.566111175
Table 4.2 Results of experiments for huge cases.
Input case ID. Large_#1 Large_#2
# of wires 8000 8000
Area (nm2) 87360 * 87360 87360 * 87360
Group A* search Proposed A* search Proposed
Routability 85.81% 94.34% 92.81% 97.89%
Total wire length (nm) 21290680 26586708 10617960 12997012
Decompression time (s) 30.83 30.84 31.82 32.69
Original data size (Byte) 1495690560 1495690560 1495690560 1495690560 Compressed data size (Byte) 5277262 3252139 4338296 2947402 Compression ratio 283.4216986 459.9097886 344.7645251 507.4606586
CR Improvement 1.622704934 1.471905088
Input case ID. Large_#3 Large_#4
# of wires 8000 8000
Area (nm2) 87360 * 87360 87360 * 87360
Group A* search Proposed A* search Proposed
Routability 92.28% 98.01% 89.76% 96.65%
Total wire length (nm) 10520240 12951368 14125160 17563512
Decompression time (s) 31.75 31.41 29.49 30.12
Original data size (Byte) 1495690560 1495690560 1495690560 1495690560 Compressed data size (Byte) 4333774 2940447 4708042 3062791 Compression ratio 345.1242635 508.6609485 317.6884488 488.3423518
CR Improvement 1.473848704 1.537173774
Table 4.3 Results of experiments for large cases.
Input case ID. Medium_#1 Medium_#2
# of wires 5000 5000
Area (nm2) 67200 * 67200 67200 * 67200
Group A* search Proposed A* search Proposed
Routability 88.10% 95.74% 93.60% 98.30%
Total wire length (nm) 10160440 12623972 4951760 5968560
Decompression time (s) 18.35 19.1 17.45 17.45
Original data size (Byte) 885024000 885024000 885024000 885024000 Compressed data size (Byte) 2980874 1892347 2414204 1714069 Compression ratio 296.9008418 467.6858948 366.5903958 516.3292726
CR Improvement 1.575225897 1.40846372
Input case ID. Medium_#3 Medium_#4
# of wires 5000 5000
Area (nm2) 67200 * 67200 67200 * 67200
Group A* search Proposed A* search Proposed
Routability 93.46% 98.64% 91.40% 97.38%
Total wire length (nm) 4921960 5973624 6738560 8327120
Decompression time (s) 17.98 17.48 18.47 18.08
Original data size (Byte) 885024000 885024000 885024000 885024000 Compressed data size (Byte) 2426859 1721081 2661106 1798012 Compression ratio 364.6787885 514.2256524 332.5775072 492.2236337
CR Improvement 1.410078317 1.48002683
Table 4.4 Results of experiments for medium cases.
Input case ID. Small_#1 Small_#2
# of wires 3000 3000
Area (nm2) 52080 * 52080 52080 * 52080
Group A* search Proposed A* search Proposed
Routability 91.07% 96.90% 95.20% 99.07%
Total wire length (nm) 4700520 5883716 2269280 2628396
Decompression time (s) 10.98 11.38 10.85 10.55
Original data size (Byte) 548714880 548714880 548714880 548714880 Compressed data size (Byte) 1703269 1110990 1337456 1010446 Compression ratio 322.1539757 493.8972268 410.2676125 543.0422605
CR Improvement 1.533109209 1.323629368
Input case ID. Small_#3 Small_#4
# of wires 3000 3000
Area (nm2) 52080 * 52080 52080 * 52080
Group A* search Proposed A* search Proposed
Routability 94.30% 99.20% 93.30% 98.67%
Total wire length (nm) 2234960 2648696 3063680 3672492
Decompression time (s) 10.8 10.45 11.34 11.29
Original data size (Byte) 548714880 548714880 548714880 548714880 Compressed data size (Byte) 1332523 1008515 1489779 1058049 Compression ratio 411.7864232 544.0820216 368.3196501 518.6100833
CR Improvement 1.321272366 1.408043484
Table 4.5 Results of experiments for small cases.
Input case ID. Tiny_#1 Tiny_#2
# of wires 1000 1000
Area (nm2) 30240 * 30240 30240 * 30240
Group A* search Proposed A* search Proposed
Routability 95.00% 97.80% 97.50% 99.30%
Total wire length (nm) 881440 1072176 421040 427356
Decompression time (s) 3.97 4.14 3.89 3.8
Original data size (Byte) 199130400 199130400 199130400 199130400
Compressed data size (Byte) 497082 361671 383569 316350
Compression ratio 400.598694 550.5843709 519.1514434 629.4623044
CR Improvement 1.374403809 1.212483009
Total wire length (nm) 437640 439072 572360 625980
Decompression time (s) 4.13 3.79 3.85 4.01
Original data size (Byte) 199130400 199130400 199130400 199130400
Compressed data size (Byte) 389990 318149 423360 335303
Compression ratio 510.6038616 625.9029574 470.3571429 593.8819515
CR Improvement 1.225809291 1.262619183
Table 4.6 Results of experiments for tiny cases.
Group A* search Proposed
Average routability 92.26% 97.59%
Total wire length (nm) 177007920 218472740
Total wire length exceeded 23.43%
Total decompression time (s) 404.04 403.93 Difference of decompression time -0.03%
Average compression ratio 364.0431 517.5174
Average CR improvement 1.421583
Table 4.7 Overall results of experiments.
Figure 4.2 Decompression time comparison
Figure 4.3 Compression ratio comparison, the black line indicates the goal of the research 450
There are two routing results shown in Figure 4.4 and Figure 4.5. In both figures, the layouts on the left is the result of the control group, while the ones on the right is the result of our proposed router. And all three layers are listed together. We can see that when we’re using only A* search, layer_2 is rarely used, while proposed router has a better area utilization. Figure 4.4 is the result of case Huge_#1 and Figure 4.5 shows the result of case Medium_#3.
Layer_0 Layer_0
Layer_1 Layer_1
Layer_2 Layer_2
(a) A* search (b) Proposed
Figure 4.4 Routing results for Huge_#1.
Layer_0 Layer_0
Layer_1 Layer_1
Layer_2 Layer_2
(a) A* search (b) Proposed
Figure 4.5 Routing results for Medium_#3.