数模混合设计流程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
input a; input b; output [1:0] out; assign out={a,b}; endmodule
);
Confidential
6
module top( aout ); output[1:0] aout; zqs zqs_i ( .a(1'b1), .b(SC), .out(aout) ); bcdef bcdef_i ( .SCEN(SCEN), .SC(SC) ); endmodule
top.v
模电部分 bcdef.v
数电部分
zqs.v
Confidential
5
•
用verilog语言定义好bcdef.v zqs.v top.v module bcdef( SCEN, SC ); input SCEN; output SC; endmodule module zqs ( a, b, out
Confidential
8
• 做好模电的.sp文件,给端口SCEN输入激励 .GLOBAL GROUND agnd dgnd .GLOBAL VDD VCC ****************************SIGNAL************************************** v1 vdd 0 h v2 agnd 0 0 v3 dgnd 0 0 V0 VCC 0 H v4 SCEN 0 pwl 0 0 4.9u 0 5u h 9.9u h 10u 0,r 0 ***** .inc 'bcdef.net' .option post=1 probe .option compat .option nojwdb .option mash .op .param h=5 .tran 1u 100u .probe v(*) .protect .lib '/users/mickey/model/umc/ptsmd07a/sim/spice/umc035-5V.lib' tttt .unprotect .model a2d_mdl a2d mode=std_logic vth=1.25 .model d2a_mdl d2a mode=std_logic vhi=5 vlo=0 trise=0.1ns tfall=0.1ns .defhook a2d_mdl d2a_mdl .END
Confidential
7
• 做好模电的. net文件,这就是一个反向器,名字bcdef 及管脚名SCEN,SC,要与verilog定义的模块名与端口名一致. *.GLOBAL VDD *.GLOBAL VDD VCC *.GLOBAL VDD *.GLOBAL GROUND AGND PGND *.GLOBAL GROUND *.GLOBAL GROUND *.PARAM .SUBCKT inv + ain o1 + LN=1.2U + WN=3.0U + LP=1.2U + WP=3.0U MXI208 o1 ain VDD VDD PT W=2.8u L=0.7u M=1 $ pmos3 MXI2 o1 ain GROUND GROUND NT W=1.3u L=0.6u M=1 $ nmos3 .ENDS $ inv $ **** Main Circuit **** .SUBCKT bcdef SCEN SC XI48 SCEN SC inv .ENDS $ OSC0_OSCTOP3 $
百度文库Confidential
9
• 做好run脚本 rm -rf WORK *.ini trans* *.chi *.tr0 *.conv t3.dct *.meo *.modelData *.mtz *.cal *.errm.log *.swd *.wdb* hs_err_pid*log valib WORK valog /users1/shana/aaaa/zqs.v -ms valog /users1/shana/aaaa/bcdef.v -ms valog /users1/shana/aaaa/top.v -ms vacom -ams -spice bcdef bcdef@bcdef.net -f vasim top -cmd op.sp
数字电路RTL代码仿真完成,及模电的网 表提取完并仿真通过后,需要把数模电路 两部分结合起来一起仿真.下面介绍的是 用Advance MS 软件进行数模混合仿真的 过程.
Confidential
1
准备好需要用到的文件.
• • 用verilog语言定义模电模块,模块与模电的每个网表相对应, 并用verilog语言定义好这 些模电模块的顶层模块.(只定义该部分的输入输出脚.) 准备好模电的仿真.sp文件,并把模电的网表用include命令包含进来.加入下面三条命令, 定义出数模信号转换时的依据. .model a2d_mdl a2d mode=std_logic vth=1.25 .model d2a_mdl d2a mode=std_logic vhi=5 vlo=0 trise=0.1ns tfall=0.1ns .defhook a2d_mdl d2a_mdl 加入下面命令生成模电的波形文件.tro .options compat .options nojwdb .option mach .option post=1 probe .probe 准备好数电的仿真Case文件,并在该文件中加入两条命令 &dumpfile(文件名.vcd); 打开一个数据库用于记录波形数据 &dumpvars(层数,case名);选择要记录的信号 用verilog语言做一个数模顶层模块,把数字的verilog顶层和模电的verilog两部分连起 来.
2
• •
Confidential
写好需要运行的脚本文件run
• • • • 用valib命令建一个库. 用valog 文件名 –ms 把所有用 到的verilog模块进行编辑.顺序为从底层到顶层. 用vacom –ams –spice 模电顶层名 模电顶层名@模电顶 层网表.net -f 进行模电的网表编辑. • 用vasim 数模顶层名 –cms 模电的仿真文件.sp
Confidential
3
数模混合平台建好后的使用
• 根据不同的仿真要求写好不同的数字仿真的激励文件case 和模电仿真的激励文件.sp • 运动run脚本,分别生成模电的波形文件.tro和数电的波形 文件.vcd • 用各自的调试工具打开波形查看仿真结果
Confidential
4
ADMS混合仿真的实例