Cadence中原理图模块化
1. 前言
今天介绍一种原理图模块化的方式,初衷是为了省去多个简单原理图工程对应的PCB的设计费,将多个原理图转化为多个子模块,放在一个工程中。
使用的原理图软件:Cadence 16.6
使用的PCB软件:Allegro 16.6
2.实现方式
将多个原理图工程模块化使用,主要包括几个步骤:建立子模块原理图,生成子模块,调用子模块,生成原理图网表,导入PCB。
下面对这几个步骤分别说明。
2.1 建立子模块
2.2.1 建立单个子模块
在常规的原理图基础上加层级接口对外输出,下图中将电源芯片的输入输出GND接口引出。
对于这个层级接口,cadence中有三种:
三种对应的属性如下:
左右两边突出的是双向的(可输入也可输出),左边突出的是输入输出特性的,长方形的是无极性的。选择哪一种接口,取决于芯片的引脚特性,两者需要保持一致,否则在电气检查时会报错。
我个人建议选passive无极性类型的,比较通用,即使是芯片Vin/GND的属性是POWER也不会出错。
2.2.1 建立多个子模块
建立单个子模块时,有一个工程,一个模块名,一个原理图页面,如下图所示:
但是当要建立多个子模块时,若在一个工程下,就要建立多个模块名,每一个模块下分别建立原理图。下图中有三个模块,模块1,2是要使用的子模块,模块top是要调用1,2模块的顶层模块。
注意在调用子模块时,需要把顶层模块make root,否则在顶层模块的page页面找不到子模块。
2.2 生成子模块
建立子模块后,做如下操作生成子模块:
选中dsn-annotate-pcb editor reuse-generate reuse mode
2.3 调用子模块
在顶层原理图中,调用子模块:
place >> herarhical block
给添加的block命名,并且寻找子模块(下拉箭头中可选择),如选择子模块1。
对于path and filename这一行,若是在本工程中使用子模块,可不做选择,若是在新工程中使用子模块,选择子模块所在的工程的dsn文件。
多次重复操作,调用多个模块,下面是调用的1,2子模块的原理图。
2.4 生成原理图网表
在生成原理图网表之前,需要保证原理图电气检查时,没有错误。但前面步骤中,即使子模块原理图无误,也有可能出现一种错误,即子模块中元件命名一致,所以需要给子模块中的元件重命名。
选中工程后,先将原来的命名复位为?,后给其重命名,如下图所示。
PCB的使用中也要重新命名。
然后进行电气检查,无误后,生成网表。
2.5 导入PCB
将网表导入到新PCB中,若封装都无误,可以进行布局布线了,此时你会发现,子模块电源地都是按block分开的,实现了多个原理图模块化使用。
3. 补充
1)注意模块电源和地的区分
电源和地是全局变量,有两种方式将其分开
- 给每个模块的电源和地都加上接口端子,地包括信号地,大地,功率地等。
- 给模块的电源和地分别命名
2)原理图变更后同步更新模块端子
每个模块原理图更新后,在模块右键synchronize up,同步在模块顶层界面。