卢骏 · 2020年08月03日

使用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描述.
1.png
左边是nmos,右边是pmos。

rtran(inout1,inout2),相当于两边是相连的。
2.jpg

对电路图中使用的mos管和电阻进行functional描述后,就可以进行仿真了。

首先是将电路图做成一个symbol,对外引出管脚。

如我要仿真如下数字电路,首先将该电路做成一个symbol。
3.png
然后开始编写testbench。编写testbench后,在将该testbench做成一个symbol。
4.png

TB便是编写的testbench。有两个view,一个verilog的functional描述,一个是symbol。

最后新建一个原理图,将上述两个symbol调用进来,进行连线。
5.jpg
这样,就完成了电路图的工作,剩下就只要使用NCVERILOG进行仿真即可了。

这里要注意VCC和GND的处理。在电路图中,有VCC和GND,对这两个处理,在TB模块中编写VCC和GND的输出,并使用supply1和supply0这两个语句对VCC和 GND定义。然后在总电路图中,将TB模块的VCC和GND用连线连出,并且给连线命名为仿真电路中的电源和地的连线的名字,这样就将仿真电路中的电源和地设置为1和0了。

接下来就进行仿真。
6.jpg
选择NCVERILOG。启动软件。

7.png
依次点击左边的按钮。

就弹出仿真界面。
8.jpg
将需要的波形添加进波形窗口。
9.jpg
选择仿真的时间,点击播放的箭头即可仿真,得到仿真波形。

这样,就实现了仿真电路图。

其实也比较简单:

l 编写mos管和电阻的functional描述,将电路图做成symbol。

l 编写testbench,并将其做成symbol。

l 将两个symbol连接起来,直接使用NVCERILOG进行仿真。

更多相关阅读

vcs编译systemverilog并且用verdi查看波形
modelsim建立UVM环境
Cadence NC_verilog仿真

原文首发于骏的世界博客
作者:卢骏
更多IC设计相关的文章请关注IC设计极术专栏,每日更新。

推荐阅读
关注数
20180
内容数
1307
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息