文档详情

网表的转换

鲁**
实名认证
店铺
DOCX
10.52KB
约3页
文档ID:425429598
网表的转换_第1页
1/3

1前言PCB板的正向设计,一般是根据所需要的功能先画出电路的原理图,然后生成相应的PCB 板有时候需要作逆向设计,即:由已知的PCB板,生成其原理图经过对PCB板的各 器件引脚的测量,得到其相互的短路关系,进而得到一个网表在PCB板逆向设计中,先要还原电路板的电路原理图以往,这项工作采用手工来完成, 先用万用表对所有的元器件的引脚进行穷举式的测量,同时手工记录所有的短路关系(用薄 记),然后人工综合网表分析电路,最后还原出电路板的原理图,这是一件非常繁琐和耗 时的工作,并且效率很低,容易出错,大大制约了解剖分析工作的整体技术水平和工作效率 为了大幅度提高分析效率,尝试制作了一个PCB电路还原设备,用来对印刷电路板进行线 路的还原,逆向分析与综合提升在电路分析的各个阶段,产生和输出与其他系统设备相衔 接的数据文件,为后续的电路分析,电路测试,逻辑分析,整机原理分析,功能提升等提供 条件我们基于的主要软件平台是Cade nee,从网表到粗略的原理图,再从粗略的原理图开始整 图,进行分析和综合,最后生成一个层次清晰、功能明确的图册这部分工作都是在Cade nee 平台上进行但是Cade nee并不支持所有这些操作,还需进行一定程度的二次开发。

二次 开发主要的语言环境是skill语言与Visual C+ +2总体设计分析网表转换程序的要求是:在给定旧网表基础上,通过参考Cade nee库文件把旧网表转换为 有利于skill程序直接加载的新网表,使得Cade nee在画电路图时能够画出两种形式的电路 图一种是元件间有连线的形式,即ROUTE形式(这种方式可以直接生成出电路板,但有些 情况下,引脚间的连线可能出现虚连的情况);另一种是没有连线的形式,但有引脚net信息网表服务模块中,程序所要做的工作是对旧的网表进行转换,把旧网表转换为两种形式:一 种是把旧网表转换为一种适合route自动连线的形式(记作新网表1); 一种是把旧网表转换 为线网名的形式(记作新网表2)在这些过程中要读取旧网表中的元件和net信息,搜索元 件的chips.prt文件,读取该文件中元件的引脚名和引脚号之间的对照信息,按要求生成新 网表文件等操作,还要把读出的器件文件的内容存入到链表中便于在转换时查询,然后根据 不同需求转换为不同的格式2.1旧网表文件格式的分析根据对旧网表的格式的分析可以看出每个元件都具有固定的格式:元件名,元件值,封装类 型,引脚数,X坐标,Y坐标;器件与器件之间用□隔开;紧随器件之后的是net;每个 net中的内容都是“元件名一引脚号”(注:个数可能是不一样);net与net之间用()隔开。

通 过上述分析,得出处理旧网表的最优方法:首先,一行一行的读出每行数据,然后,从中提取 出器件的信息再把所有的器件的信息读出放在一个结构体中(这个结构体里面应该包含元 件名,元件值,封装类型,引脚数,X坐标,Y坐标),再由这些结构体作为节点组成一个 链表在接下来的处理过程中要根据元件值在Cade nee库中查找元件的信息然后再由这些 元件信息对原来的元件名进行修改注:引脚数在Cade nee画图时是必不可少的)同样,由于器件的封装类型的多种多样,相同器件的不同封装其对应的引脚名与引脚号是不 同的,所以对元件来说封装类型也是必不可少的信息,因此读旧网表时必须读取元件封装类 型信息(注:如果元件是电阻就不用读出封装名了)由于X,Y坐标在Cade nee画图时也 是定位元件必不可少的,所以这两项值也要读出来对于net信息也采用相同的方法:一行 一行地读信息到一个包含元件名,引脚号的结构体中,再由这些结构体作为节点组成一个链 表这些信息是在下面转换的过程中必不可少的2. 2新网表文件格式的分析和旧网表相比,新网表1的格式是net中的元件名改动了,元件的X,Y坐标也进行了改动 元件名的修改是根据Cade nee库文件中的元件的引脚名和引脚号的对应关系改动的,而X,Y 坐标的改动是由不同的seetion改动的.和旧网表相比,新网表2的格式是改动了元件名并在 原来的基础上添加了这个新的元件名在net出现的引脚名及对应的net信息,同时去掉了以 前的独立的net信息并且也改动了 X,Y坐标。

3网表服务模块详细设计程序实现时定义eomptstruet结构体,即网表器件信息链表(见图1)中的节点数据类型具 体定义如下:structcomptstruct{ _CStr ing m_ComptName; //元件名CStr ing m_ComptVal; /元件值CStr ing m_E ncapsType; //封装类型CStri ng m_ComptPath; 〃元件的路径int m_FeetNum; 〃引脚数int x_po int; //x 坐标int y_point; //y 坐标bool ComptF ind; //元件是否找到bool En eapsF in d; 〃元件封装是否找到struct eomptstruet * n ext;//指旨向下一节点的扌旨针};此结构体是net链表(见图2)中的一个节点net结构体的定义如下struct n etstruet{CStri ng m」et name; 〃网络名struct eompt_ net * eompt_struet;struct n etstruet *n ext;//指 旨针域}struct eompt_ net{CStri ng compt name; 〃器件名称 Int feet num; 〃引脚号 char newfeet name[20];〃 引脚名struct compt_net *next;// 扌旨针域}。

下载提示
相似文档
正为您匹配相似的精品文档