Cadence数模混合电路设计_spetreVerilog
- 格式:ppt
- 大小:3.84 MB
- 文档页数:67
数模混合电路设计流程马昭鑫 2012/5/23本文主要面向模拟电路设计者,讲解了从行为级代码形式的数字电路到数模混合版图之间的流程,默认模拟版图和数字电路的行为级代码、testbench已经完成。
阅读者需确定自己会编写Verilog或Spice格式的网表,熟悉Linux的文件操作,了解Spectre、Virtuoso、Calibre、Modelsim、Design Compiler(dc)、Astro等EDA工具的使用方法。
由于本人才疏学浅,经验不足,难免会在文中出现一些错误,恳请高手给予指正。
数模混合电路的仿真方法一般的设计流程中数字电路和模拟电路是分开进行设计的,但有些时候希望能将数字电路和模拟电路放在一起仿真来验证设计,这就需要用到混合电路的仿真方法。
在Cadence 工具中有专门用作混合电路仿真的仿真器spectreVerilog,其实现方法是首先将模拟模块与数字模块区分开并设置接口电平,然后在ADE中设置数字电路的测试代码,调用不同的仿真器分别对数字模块和模拟模块进行仿真,最后将结果汇总显示或输出。
下面将以一个简单实例的形式讲解混合电路的仿真方法。
一、建立数字模块①在命令行中输入下面的命令设置NC-Verilog和Cadence并启动Cadence;setdt ldvsetdt icicfb&②建立Library的方法不再累述,创建Cell view时注意Tool选择Verilog-Editor,View Name 填写functional;③点击OK后会弹出有模块代码框架的vi窗口,将设计需要的代码输入或粘贴进去;④保存并关闭后如果没有错误会弹出创建Symbol View的询问对话框,确定后会进入Symbol编辑器,并自动生成了Symbol(注意在Cadence中总线用尖括号<>表示);⑤保存并关闭Symbol编辑器。
至此已经完成了数字模块的创建。
二、建立模拟模块模拟电路的创建方法无需赘述,这里搭建了一个输出频率为10MHz的环形振荡器。
SpectreVerilog软件做数模混合仿真简单教程1、首先是建立仿真单元(如:MIX_SIM)
2、建立config文件,如下图所示,点击OK。
在出现下图表中点击Browse,选择好cell的View=schematic,然后点击OK
然后分别按下面图示操作。
3、打开MIX_SIM的config文件,如下图所示。
4、设置模数转换以及数模转换接口,注意下图所示的设置方法要求数模模数转换接口处用的是functional,设置才有效。
5、打开模拟仿真器,选择模拟软件工具为SpectreVerilog,并填好用于仿真的目录。
6、选择仿真模型库
7、如果需要添加仿真激励信号,按下图操作,加入激励信号,保存退出。
8、选择仿真模式,瞬态仿真的话填入仿真时间以及步长设定。
9、选择探测信号,接着选择出网表并运行仿真。
用SpectreVerilog进行模数混仿,以Sigma-Delta ADC为例loghereloghere@SpectreVerilog模数混仿, 模拟部分用Spectre, 数字部分用Verilog-XL. 所以还需要安装Cadence LDV软件, 其内含Verilog-XL仿真器.这里以自行设计的二阶全差分Sigma-Delta ADC为例, 详细介绍用SpectreVerilog的仿真过程. 所用工艺库为TSMC 0.18u,电源电压:1.8V.1. 准备Sigma-Delta ADC分模拟和数字部分两块, 其中模拟部分为调制器, 数字部分为数字滤波器. 如下图. 其中out为调制器的输出, 这里是1位0,1数据流. 数字滤波器为Verilog RTL级代码.Schematic:Symbol:Verilog Code:module DigitalFilter (in2out, out, clk, clr, in);output in2out;output [`wordsize-1:0] out;input clk;input clr;input in;reg in2out;wire clk_half1, clk_half2;……Endmodule同时为了直观的观看输出结果,因此把输出的数字字转化为模拟量,这里用Verilog-A做一个理想的DA转换器。
因此最好事先用Spectre仿真模拟部分, 用ModelSim或Verilog-XL等仿真数字部分. 这里假定我们已有:1) 模拟部分的原理图(包括Symbol);2) 数字部分的Verilog代码,DigitalFilter.v, 模块名:DigitalFilter(in2out,out,clk,clr,in);3) 数字部分的TestBench代码, DigitalFilter_TB.v, 模块名: DigitalFilter_TB.下图为最终的系统图:2. 创建数字模块的Symbol1) 新建一个Cell, View Name为symbol, Tool: Composer-Symbol.2) 画Symbol. 简单地, 画一个矩形框, 添加几个Lable, 然后添加Pin.3) 添加Pin. 左边输入, 右边输出. 对于多位的pin可以用如out<7:0>的样式作为pin的名字. 注意: 与模拟部分相连的多位Pin最好不要用一个pin, 而要用多个. 如下图.4) 创建对应的Verilog文件. 在symbol编辑器中, Design菜单->CreatCellView->From CellView.会弹出的对话框, Tool/Data Type一栏选择Verilog-Editor, 则To View Name会变为functional.点击OK, 会弹出错误对话框, 点No. 自动弹出VI编辑器, 可以看到已经生成Verilog代码的空壳.代码文件的路径在VI编辑器的标题栏上. 下面要做的就是把我们的数字模块(不是TestBench)的代码填进去. 如果不想用VI编辑器, 也可以用其他文本编辑器. 复制代码时最好不要动自动生成的代码. 经测试, 所有代码最好放在一个文件中.这一步之后,数字部分就会有functional和symbol两个View。
Cadence 的数模混合仿真工具spectraverilog能够实现数字模拟电路联仿的功能,对于模拟电路的输入信号可以利用数字接口很方便的进行设置。
主要用来进行功能仿真。
步骤:
1.准备schematic,如电路单元mix
2.从库管理器中建立mix单元的config view.
在use template中选择spectraverilog,然后ok
将top cell中的myview改为实际的schemtic,然后ok
正确的结果如下图
保存,点击open打开config后的schematic,在tools中选择mix signal opts.
在mix-signal菜单中,尝试第二项的每一个小项,可以看到模拟和数字的相关划分。
由于数字部分默认的电压为5V,转换电平为1.5V和3.5V,因此,如果电路的电源电压不同的与5V,需要对于数模混合接口部分进行设置,在mix-signal菜单中的第三项中进行设置。
对于模拟部分来讲,其按照模型进行计算,无需在数模接口部分进行端口设置,对于数字接口来讲,需要将默认的5V电平以及1.5V,3.5V转换电平变为与模拟部分相符的电压
值,比如电源3V,转换电平为1.5V和3.5V。
设置如下,
对于与模拟器件相连接的数字输出端,将高电平由5V改为3V
对于与模拟器件相连接的数字输入端,将转换电平由1.5V改为3.5V改为1V和2V
所有数模混合接口的相关的数字端口都需要改动,如下图所示的数模接口部分
3.调出analog仿真工具,并设置为spectreverilog
4.编写端口的输入激励文件
设置传输分析的时间长度
5.其余步骤同模拟信号仿真一样,run。