DRC开发:main()共模电感器函数
可以调用DRC程序drc.c,该文件具有两个主要函数:drc_net()和drc_inst()。drc_net()遍历了全部网路而drc_inst()则遍历所有的元件(符号),这样就能检测任何有违规则的设计缺陷。这两个函数都能产生附属的输出文件,可以参见1.0节和4.0节。
插件电感器drc.c首先应当包含全部由C、ViewBase和用户创建的头文件,如stdio.h、viewbase.h和viewbase.h。现在可以设定drc.c接收输入参数,这样不仅能为输入和输出文件声明变量和文件指针,还可使ViewBase指向ViewDraw数据库,并创建链接列表和散列表以存取从输入文件读入的信息。下面给出了main()函数的部分代码实现。

当DRC封装程序激活DRC时,将导入电感器生产厂家输入和输出文件名及PCB设计名 (参见3.0.1节)。数据结构Str_list_elem和Hash_table定义在drc.c包含的头文件中,而GROUPS则是ViewBase数据类型。
下一步,main()函数可以通过检验argc的取值从而确保输入参数数目正确。如果参数值正确,那么将为变量分配正确的输入参数。

差模电感器
此时,main()函数可以初始化ViewBase数据结构,并使ViewBase指针pcb-ptr指向PCB设计。如果该设计存在并有效,那么main()函数应当:
* 打开全部输入文件,读取信息并将信息存储到内部数据结构(如Str_list_elem和Hash_table)中, 然后关闭输入文件。
* 打开所有输出文件以写入信息,这些文件可以是设计规则错误/警告文件,也可以是附属文件。
* 调用drc_net()和drc_inst()函数执行实际操作。
* 关闭所有输出文件。
main()函数中完成上述功能的C和ViewBase代码如下:
[列表3]
这里,iwinit()和iw1level()是ViewBase例程。前者初始化全部载入例程(这也是必须的),而后者则载入整个PCB设计。为了保证只载入一张电路图,可以调用iw1sheet()例程(本文的DRC工具并不使用该例程)。需要注意的是,正确的设计指针、文件指针、链接列表、变量名称等必须传入drc_net()和drc_inst()函数:
drc_inst(pcb_ptr, pcb_name, drc_error, list_legal_pwr_name, ...);
drc_inst(pcb_ptr, pcb_name, drc_error, list_legal_pwr_name, ...);
如果设计采用分层结构及不同的器件符号,那么还必须确保DRC能正确处理这些器件。
DRC开发:drc_net()函数
drc_net()在PCB设计中遍历所有网路并检测任何违反设计规则的故障,然后创建附属的输出文件。实现上述功能的基本代码如下:
[列表4]
这里,iggrpnet()和ignetnxt()函数是在PCB设计中检查每个网路的ViewBase 例程。ignetnam()函数也是检查网路名称的ViewBase例程。ViewBase中的数据类型包括NETS、PINS、COMPONENTS、SYMBOLS和ATTRIBUTES。drc_net()函数可检测下述电感器的作用是什么违反设计规则的错误:
用示波器测量福特福克斯智能交流发电机波形什么是福克斯智能交流发电机:福特福克斯智能交流发电机是第一个引进由发动机的ECM或动力控制模块(PCM)电子控制的交流发电机系统,这种称为“智能充电”系统,现在大多数汽车厂都是 柔性屏幕的优点与未来挑战 4月08日 第三届·无线通信技术研讨会 立即报名 12月04日 2015•第二届中国IoT大会 精彩回顾 10月30日ETF•智能硬件开发技术培训会 精彩回顾 10月23日ETF•第三届 消费 基于MCU+DSP的运动控制硬件平台设计 引言开放式控制器体系结构源于“开放式”的PC(个人计算机) 技术, 目前的开放式运动控制器多为PC+运动控制卡结构, 随着MCU(微控制器) 和DSP(数字信号处理器)性能的增强, MUC和DSP取
4/7 首页 上一页 2 3 4 5 6 7 下一页 尾页 |