最近在学cadence画板子,感觉布线好麻烦啊!该怎么布线,先哪个后哪个?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最近在学cadence画板子,感觉布线好麻烦啊!该怎么布线,先哪个后哪个?相关的知识,希望对你有一定的参考价值。
如果板子有定位要求,当然是先放定位零件,比如螺丝孔....我的经验是看客户有没有要求某些零件一定要摆什么位置,然后就是结合线路图,按照零件引脚多少顺序来摆放。 参考技术A 楼上说的对,先要看要求,布线一定要规范,好的板子首先要让人看着舒服,而且功能一定要实现,可以买一本专业点的参考书系统的学习一下
递归DFS感觉好难理解啊
都说递归是一种易于理解的编码方式,但是感觉并没有那么轻松。
今天刷leetCode遇到一个分割回文串的问题,如下:
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。
返回 s 所有可能的分割方案。
示例:
输入: "aab"
输出:
[
["aa","b"],
["a","a","b"]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-partitioning
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
其中就有运用DFS和回溯的解法
完整代码如下
package com.LeeCode;
import java.util.ArrayList;
import java.util.List;
public class VariesPalindrome
List<List<String>>list=new ArrayList<List<String>>();
String s;
public List<List<String>> partition(String s)
//从头到尾递归+回溯。
this.s=s;
//这个是满足的每一个集合
List<String>ll=new ArrayList<String>();
dfs(ll,0);
return list;
public void dfs(List<String>ll,int index)
if(index==s.length())
list.add(new ArrayList<String>(ll));
return;
//i从index开始是因为单个字符也是回文子串
for(int i=index;i<s.length();i++)
//如果是回文
if(isPalindrome(index,i))
//把当前的回文子串s(index,i)加进去
ll.add(s.substring(index,i+1));
dfs(ll,i+1);
//把加进去的回文子串去处。和上面加进去的回文子串是同一个回文子串。
ll.remove(ll.size()-1);
public boolean isPalindrome(int start,int end)
while(start<end)
if(s.charAt(start)!=s.charAt(end))
return false;
start++;
end--;
return true;
public static void main(String[] args)
VariesPalindrome variesPalindrome=new VariesPalindrome();
String jj="abnnss";
System.out.println(variesPalindrome.partition(jj));
以上是关于最近在学cadence画板子,感觉布线好麻烦啊!该怎么布线,先哪个后哪个?的主要内容,如果未能解决你的问题,请参考以下文章
Cadence Allegro巧用自动布线工具图文教程及视频演示