adence数模混合电路设计spetreVerilog
- 格式:pdf
- 大小:4.55 MB
- 文档页数:64
数模混合电路设计流程马昭鑫 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。
【博友原创】使用NCVERILOG仿真mos数字电路展开全文在cadence中,使用mos管和电阻构建了数字电路,但是要对这电路进行功能仿真,仿真的激励也比较复杂,不能使用简单的信号源产生,这个时候,就会考虑使用verilog,编写testbench来进行仿真。
但是电路是由mos管构成的,是不能直接进行verilog仿真的,就需要进行一定的转换。
将nmos管和pmos管以及电阻,进行等效的verilog描述。
这个时候,就需要使用verilog的开关建模了。
Verilog语法中,有定义几个开关建模的原语。
这里,使用两个就好了。
分别是tranif0和rtran。
tranif0(inout1,inout2,control)当control信号有效的时候,inout1与inout2相连,否则没有驱动源的端口为高阻。
使用该原语对pmos和nmos进行functional描述左边是nmos,右边是pmos。
rtran(inout1,inout2),相当于两边是相连的。
对电路图中使用的mos管和电阻进行functional描述后,就可以进行仿真了。
首先是将电路图做成一个symbol,对外引出管脚。
如我要仿真如下数字电路,首先将该电路做成一个symbol。
然后开始编写testbench。
编写testbench后,在将该testbench 做成一个symbol。
TB便是编写的testbench。
有两个view,一个verilog的functional描述,一个是symbol。
最后新建一个原理图,将上述两个symbol调用进来,进行连线。
这样,就完成了电路图的工作,剩下就只要使用NCVERILOG进行仿真即可了。
这里要注意VCC和GND的处理。
在电路图中,有VCC和GND,对这两个处理,在TB模块中编写VCC和GND的输出,并使用supply1和supply0这两个语句对VCC和GND定义。
然后在总电路图中,将TB模块的VCC和GND用连线连出,并且给连线命名为仿真电路中的电源和地的连线的名字,这样就将仿真电路中的电源和地设置为1和0了。
以DAC为例介绍SpectreVerilog数模混合电路仿真方法来源:EETOP BBS 作者:真我个性(eetop id名)1.先谈下cadence IUS 和cadence ic,nc-verilog,spectre的关系cadence ic用于模拟仿真的软件,cadence IUS用于数字仿真的软件。
如果只做模拟,那用ic就够了。
同理,如果只做数字,那用IUS 也就够了。
但如果做数模混合,既有数字又有模拟,那两个软件都需要安装。
cadence ic cadence IUS如同spectre是cadence ic的模拟仿真器,nc-verilog是IUS的数字仿真器。
因此,如同装上cadence ic就能用spectre一样,装上cadence IUS就能用nc-verilog。
2. 数模混合电路中数字和模拟的实现数模混合电路中的模拟部分包括运放,开关电容等,数字部分包括开关电容中的控制信号等。
本文模拟部分就是DAC,但是例程中的DAC并不是用实际的电路实现的,而是采用verilog A代码来描述其行为模型的。
代码如下:数字部分就是给DAC提供一些列的数字输入信号,采用的是数字语言verilog实现的,代码如下:所有代码,其中DAC8bit_spectreverilog.tar.gz是cadencelibrary,解压后可直接在cadence中仿真运行。
DAC8bit_spectreverilog.zip (24.61 KB) (本文最后的压缩包中也有该文件)数模混合电路仿真时数字电路采用nc-verilog仿真器,模拟电路用spectre仿真器,最后把结果合在一起。
具体的设置步骤参考下文:VerilogA_Creating & simulating an 8-bit D-A Converter (DAC)_spectreverilog.pdf (605.61 KB) (本文最后的压缩包中也有该文件)总电路仿真结果3. 参考资料“数模混合电路设计流程_中科大”:介绍很完整,很严谨。
2
1
3
4
操作示例
混合信号模拟的实现
混合信号模拟的特点
混合信号模拟简介
混合模拟的应用
混合模拟的定义
Cadence 中的实现
1.模拟信号模拟
用高斯消去法
2.数字信号模拟
3. 混合信号模拟
框架型
lock-step )同步法= Cadence spetreverilog
3. 混合信号模拟
3. 混合信号模拟
混合信号模拟简介
2混合模拟的定义
13
4混合模拟的应用
1. 数模混合设计
1. 数模混合设计
1. 数模混合设计
数模混合验证
仿真
2.大型数字系统仿真
3.仿真提速
混合信号模拟简介
2混合模拟的定义
13
4混合模拟的应用
Cadence中的实现
1. 数模混合仿真的环境
2. 数模混合仿真的数据流
操作示例
混合信号模拟简介
混合信号模拟的特点2
13
4混合信号模拟的实现
建立层次文件
数字-模拟电路设计制作顶层文件设置仿真环境
仿真
制作顶层文件建立层次化文件
配置仿真环境仿 真
1.数-模电路设计
1.数-模电路设计
Lib
Counter_1Clk_1 Verilog schem
symbo
1.数-模电路设计
2-1 数字-模拟电路设计
1.数-模电路设计
1.建立一个设计库
2.数字电路设计
2-1 数字-模拟电路设计1.数-模电路设计
1.建立一个verilog元件
2.数字电路设计
2.数字电路设计
verilog symbo
2-1 数字-模拟电路设计
2.数字电路设计
3.生成symbol视图
2-1 数字-模拟电路设计
2.数字电路设计
3.生成symbol视图
2.数字电路设计
3.模拟电路设计
2-1 数字-模拟电路设计
3.模拟电路设计
1.建立一个schemetic元件
2-1 数字-模拟电路设计
3.模拟电路设计
2.绘制schemetic原理图
3.模拟电路设计
混合信号模拟的实现
数字-模拟电路设计
制作顶层文件
仿真
混合信号模拟的实现
数字-模拟电路设计
制作顶层文件
建立层次文件
仿真
1.建立config 文件
Lib
Verilog
schem
symbo
Counter_1
Clk_1config
1.建立config文件
1.建立config 文件
2-3 建立层次文件
2.链接顶层文件
1.建立config 文件
2-3 建立层次文件
3.设置spetreverilog 模板
2-3 建立层次文件1.建立config文件
3.设置spetreverilog模板
混合信号模拟的实现
数字-模拟电路设计
制作顶层文件
建立层次文件
设置仿真环境
仿真
1.进入Mixed signal模式。