可构建QCA电路的分区与布局及大规模纳米系统验证
1. QCA电路分区与布局
在QCA电路的单元布局过程中,为了最小化总线长度和交叉,会随机选择图中的一个层级,然后交换该层级中两个随机选择的门 [g1, g2] 。以下是相关代码:
diff = diff + M[i][j];
i = i + 1;
sum = sum −M[R1][j] ∗(tmp + neg);
sum = sum + M[R2][j] ∗(tmp + pos);
pos = pos + M[i][j];
neg = neg + M[R2][j];
return(sum);
初始总线长度计算复杂度为$O(n)$,更新总线交叉数量的复杂度为$O(n^2)$,其中$n$是二分图中一层的节点数量。通过初始计算总线长度和交叉数量,并在每次移动后增量更新这些值,能显著提高计算速度,从而探索更多候选解决方案。
设置初始温度使大约50%的不良移动被接受,最终温度使少于5%的移动被接受。使用了三种不同的成本函数:
- 第一种仅基于净总线长度进行优化。
- 第二种评估总线交叉数量。
- 第三种考虑两者的加权组合,权重为分析解中总线长度和交叉数量的比率。
1.1 实验结果
算法用C++/STL实现,在奔腾III 746 MHz机器上用gcc v2.96编译。基准测试集包括ISCAS89的七个最大电路和ITC99套件的五个最大电路。
超级会员免费看
订阅专栏 解锁全文

74

被折叠的 条评论
为什么被折叠?



