本文主要介绍了数模混合电路设计流程,旨在帮助模拟电路设计者从行为级代码形式的数字电路到数模混合版图之间的流程。文章假设读者已经完成了数字电路的行为级代码和testbench,并熟悉Linux的文件操作以及Spectre、Virtuoso、Calibre、Modelsim、Design Compiler(dc)和Astro等EDA工具的使用方法。
一、数字模块设计
1. 在命令行中输入命令设置NC-Verilog和Cadence,启动Cadence。
2. 建立Library的方法不再累述,创建Cell view时注意选择Verilog-Editor,并将View Name填写为functional。
3. 点击OK后,输入或粘贴模块代码框架,保存并关闭。
4. 如果没有错误,会弹出创建Symbol View的询问对话框,确定后将进入Symbol编辑器,并自动生成了Symbol。
二、模拟模块设计
1. 模拟电路的创建方法无需赘述,这里搭建了一个输出频率为10MHz的环形振荡器。
三、混合电路配置
1. 直接在模拟电路中搭建混合电路,将数字模块添加进来,连接数模之间的接口,预留给testbench的接口用port连接。
2. 新建与混合电路模块同名的Cellview,选择Hierarchy-Editor,View Name自动修改成config。
3. 点击OK后弹出Hierarchy编辑器的界面,点击Browse,选择混合电路的schematic cellview,然后点击OK。
4. 点击下方的Use Template按钮,在弹出的对话框中将Name选择为spectreVerilog,点击OK回到原对话框,再点击OK进入主界面。
四、混合电路仿真
1. 双击config view或右击open,弹出打开方式的对话框,config选择no,schematic选择yes,点击OK。
2. 在打开的Schematic编辑器中点击Tools→Mixed Signal Opts.,会发现编辑器的菜单栏变成了Mixed-Signal模式。
3. 点击Mixed-Signal→Display Partition→All Active,如果弹出对话框则点击OK,可以看到数字模块和模拟模块用不同的颜色标注了出来。
4. 点击Mixed-Signal→Interface Elements→Cell,点击数字模块,弹出设置接口电平的对话框,需要设置a2d_v0和a2d_v1这两个参数。
5. 如果有数字输出给模拟的接口,需要将该对话框中的Model IO改成Output,设置d2a_vh和d2a_vl两项。
本文详细介绍了数模混合电路设计流程,从数字模块设计、模拟模块设计到混合电路配置和仿真,希望对读者有所帮助。