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. 参考资料“数模混合电路设计流程_中科大”:介绍很完整,很严谨。
cadence数模混合课程设计一、教学目标本课程的教学目标是使学生掌握Cadence数模混合电路设计的基本原理和方法,具备使用Cadence软件进行数模混合电路设计和仿真分析的能力。
具体目标如下:1.掌握数模混合电路的基本概念和组成。
2.熟悉Cadence软件的操作界面和基本功能。
3.了解数模混合电路设计的基本流程和原则。
4.能够使用Cadence软件进行数模混合电路的绘制和仿真。
5.能够分析并解决数模混合电路设计中遇到的问题。
6.能够独立完成简单的数模混合电路设计项目。
情感态度价值观目标:1.培养学生的创新意识和团队合作精神。
2.增强学生对电子工程领域的兴趣和热情。
3.培养学生对科学研究的严谨态度和持续学习的意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Cadence软件的基本操作:包括软件的安装和卸载、操作界面熟悉、基本工具的使用等。
2.数模混合电路的基本概念:包括数模混合电路的定义、组成、特点和设计原则等。
3.数模混合电路的绘制:包括电路图的绘制、元件的选取和放置、电路的连接和布局等。
4.数模混合电路的仿真分析:包括电路的参数设置、仿真数据的获取和分析、仿真的优化和调整等。
5.数模混合电路设计实例:包括简单的数模混合电路设计项目、电路的验证和优化等。
三、教学方法为了达到本课程的教学目标,我们将采用多种教学方法相结合的方式进行教学。
主要包括以下几种:1.讲授法:通过讲解和演示,使学生掌握Cadence软件的基本操作和数模混合电路的基本概念。
2.案例分析法:通过分析实际案例,使学生了解数模混合电路的设计方法和流程。
3.实验法:通过实际操作Cadence软件进行数模混合电路的绘制和仿真,使学生掌握设计技巧和分析方法。
4.讨论法:通过小组讨论和交流,培养学生的团队合作精神和创新能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用合适的Cadence软件教程和数模混合电路设计相关教材。
数模混合仿真设计流程详解
数模很合仿真可以提高cadence仿真的速度,使用spectreverilog进行仿真。
首先需要安装IUS9.2数字电路的仿真器,verilogXL。
否则不会启动的!!!!!我一开始用的是ic514后来发现我没有安装IUS,同时虚拟机没有空间了,于是我就把IUS装到了ic615上,所以前面的界面是514后边会有615的界面,大同小异。
按照步骤来,我相信大家都会学会的。
1.建立一个设计库:
2.建立一个数字单元functional cell,输入verilog代码
输入代码完成后创建符号图
3.创建模拟电路
5.建立config文件
6.建立spectreverilog模板
进入mix模式,打开simu的config文件后再进入mix模式
ic6151
仿真器改成spectreVerilog
设置数字电路和模拟电路的仿真激励
编辑测试激励语句
设置仿真时长与步长
仿真结果如下
需要注意的是数字和模拟电路的接口电平设置,何为1何为0。
需要在下图所示中设置
输入输出都需要设置,高电平何为1低电平何为0。
一般情况下是默认值,如果默认值不太合适的话,会导致逻辑错误。
所以需要手工设置一下。
这个地方我还没有研究明白,应该会
选择 一下针对CELL或者lib或者pin。
cadence数模混合课程设计一、课程目标知识目标:1. 理解数模混合电路的基本概念,掌握Cadence软件中数模混合电路的设计流程;2. 掌握数模混合电路中模拟电路与数字电路的接口技术,了解其相互影响;3. 学会使用Cadence软件进行数模混合电路的仿真与优化。
技能目标:1. 能够运用Cadence软件设计简单的数模混合电路;2. 能够分析数模混合电路中可能出现的常见问题,并运用所学知识进行解决;3. 具备一定的电路调试与优化能力,提高实际工程应用中的问题解决能力。
情感态度价值观目标:1. 培养学生对数模混合电路设计的兴趣,激发其创新意识;2. 增强学生团队协作意识,培养良好的沟通与协作能力;3. 强化质量意识,使学生认识到严谨的工程态度在电路设计中的重要性。
课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,注重培养学生的动手能力和实际问题解决能力。
学生特点:高年级学生,已具备一定的电子电路基础知识,具有较强的学习能力和自主性。
教学要求:结合学生特点,注重理论与实践相结合,强调实际操作,以项目为导向,提高学生的实际工程能力。
在教学过程中,关注学生的个体差异,针对性地进行指导,确保课程目标的实现。
通过课程学习,使学生能够独立完成数模混合电路的设计与优化,为后续相关课程和实际工作打下坚实基础。
二、教学内容1. 数模混合电路基本概念:包括模拟电路、数字电路特点,数模混合电路的定义及其在电子系统中的应用。
教材章节:第二章 数模混合电路基础2. Cadence软件操作:介绍Cadence软件的基本操作,原理图绘制,电路仿真等。
教材章节:第三章 Cadence软件操作3. 数模混合电路设计流程:讲解从电路设计、原理图绘制、仿真测试到PCB 设计的完整流程。
教材章节:第四章 数模混合电路设计流程4. 接口技术:分析模拟电路与数字电路之间的接口技术,包括信号转换、阻抗匹配等。
教材章节:第五章 接口技术5. 电路仿真与优化:介绍仿真方法,参数设置,优化策略等,提高电路性能。
C a d e n c e中V e r i l o g的使用方法本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March第四章Cadence中Verilog的一些使用方法§ 4-1 Verilog 的文本编辑器随着电路规模的增大和复杂,传统的图形输入模式已不可行。
语言描述电路成为潮流。
它的方便性和好的更改性、维护性在实践中得到很好的体现。
尤其现在强大的综合工具,和系统集成对核的需求性使Verilog更有用武之地。
每个硬件工程师应该学习掌握它。
在进入Cadence后在命令行中键入textedit *.v↙(此处*为文件名,在textedit 命令后应带上文件名)键入上述命令后进入文本编辑框,和Windows 中常用的文本编辑框很象。
图4-1-1textedit文本编辑框界面图中的主菜单File、View、Edit、Find及各自底下的子菜单和Windws中的文本编辑器差不多,使用方法相似,这里就不多说了。
编好程序保存可以进行后续工作了。
§ 4-2 Verilog 的模拟仿真一.命令的选择。
在命令行中键入verilog↙会出现关于此命令的一些介绍,如下:-f <filename> read host command arguments from file.-v <filename> specify library file-y <filename> specify library directory-c compile only-s enter interactive mode immediately-k <filename> set key file name-u convert identifiers to upper case-t set full trace-q quiet-d decompile data structureSpecial behavioral performance options (if licensed):+turbo speed up behavioral simulation.+turbo+2 +turbo with second level optimizations.+turbo+3 +turbo+2 with third level optimizations.+listcounts generate code for maintaining information for $listcounts+no_turbo don't use a VXL-TURBO license.+noxl disable XL acceleration of gates in all modulesSpecial environment invocation options (if licensed):+gui invoke the verilog graphical environment在上面的参数选择中,简单介绍几个常用的:(1)-c首先应该保证所编程序的语法正确性。
Spectre与verilog 混合仿真初级指导卢志坚2010-4-24Spectre与verilog混合仿真,顾名思义,就是电路既含有模拟电路,又有有verilog语言编写而成的数字处理模块;主要针对时序分析,以及自动校准功能。
1.把verolog模块导入到spectre中。
如果需要导入多个模块,而且模块之间存在嵌套调用的话,需要把所有嵌套调用的模块都写在同一个.v文件中。
(不是一定要这样做,只不过这样做是不会有问题的,其他更便捷的做法则需要各位仁人志士去发掘了)(a)如上图:在icfb最初窗口上选File,接着Import,接着Verilog;(b)接着在弹出的窗口“Verilog In”中,如上图,只关心红框标注的4个地方,在第2个红框处,可以浏览到需要把文件导入的目标库“test_lu”;在第一个大框中,可以浏览到逆需要导入的try.v,选中后,点击第3各红框“Verilog Files To Import”右边的“Add”;在第4个红框中“Import Structural Modules As”选“functional”;其他可以不用管吧,不过尽量与截图一致的话会比较顺利的。
最后点击“OK”,然后等一会,会提示导入完成,提示逆查看以下信息,如果导入不成功,很可能是你的.v文件没有写好,需要修正以下,然后再做导入工作。
(c)如上图,导入成功以后,在“Library Manager”中的库“test_lu”中,“Cell”一栏下就会出现所导入的所有模块,每个模块都有“functional”与“symbol”两个View。
2.把数字模块添加到schematic中(a)如上图,Cell“test_dft”只有schematic View,打开之,如下图(b)按照一般的添加instance的步骤,把数字模块“digital_3”加进来,如下图(c)保存好,然后关掉schematic View“config”,然后回车,就会弹出下图(e)“Library Name”与“Cell Name”明显是不用改的,而“Tool”需要选到“Hierarchy-Editor”,之后“View Name”自动变为“config”,然后“OK”,则继续弹出下图的两个窗口“New Configuration”和“hierarchy-editor”(f)如上图,在“New Configuration”窗口中,在View处浏览,弹出下图浏览窗口(g)选中test_dft中的schematic,之后“OK”,然后又回到“New Configuration”窗口,点击“Use Template…”, 如下图(h)之后会弹出“Use Template”窗口,如下图,在“Name”中选中“spectreV erilog”,之后“OK”;(i)然后“New Configuration”窗口中的有关信息被填好,如下图,然后“OK”(j)然后刚才空着的“hierarchy-editor”窗口,会被填满信息,该信息都是关于schematic View中的信息,如下图(k)然后可以保存,则完成该config View的设置,然后关闭该窗口。
Verilogspectre操作步骤
1、对要用verilog进行仿真的数字单元,新建functional
2、编辑数字单元的functional
3、在要进行数模混合仿真的电路cell下,新建配置文件config
4、配置文件config建立后,自动弹出初始化配置窗口。
单击Browse,将config文件链接到
要数模混合仿真的电路原理图文件,点击OK保存。
5、点击Use Template… 选择要数模混合仿真的模板,这里选择spectreVerilog。
单击OK完
成初始化。
6、对要数模混合仿真的电路进行配置。
如下,将sample库内的数字单元设置用verilog仿
真,在view found栏内显示functional,表示其已经设置成数字仿真。
如果需要用模拟仿真,右击此栏,弹出如下子窗口,选择用schematic。
7、配置完成后单击保存,退出配置窗口。
双击config弹出如下窗口,上面表示打开配置文
件,下面表示打开原理图文件,这里已经配置完成,只打开原理图文件。
8、打开电路原理图后,点击tools‐> analog enviroment,弹出仿真对话框,点击setup,选
择simulator/Directory/Host…
9、弹出选择仿真器窗口,在simulator栏内选择spectreverilog作为仿真工具,点击OK。
自
动载入数模混合仿真环境。
接下来设置和spectre仿真相同,不再赘述。
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模式。