ncverilog与finesim联合进行混合仿真的详细过程

第一步:建立Makefile仿真命令

其内容如下:

one:
    ncverilog +access+rwc +nc64bit +loadvpi=finesim.so:finesim_startup -f run.f

注:

run.f文件里调模块的数字控制.v文件以及仿真环境的testbench.v文件。

第二步:仿真环境基本框架搭建

环境框架:

所需文件:

1、顶层文件:top.v以及top_ana.v

2、数字:verilog源代码

3、模拟:xxx模块的 "xxx.cdl" 网表

其中,在top_ana.v里需添加 $finesim_module ,且top_ana.v里的多bit信号的输出需用wire scalared 进行声明。除此之外,最重要的一点是top_ana.v的端口信号顺序一定要和"xxx.cdl"里网表的端口顺序一致。

第三步:数模接口finesim.cfg定义

其内容如下:

.a2d default vl=0.5 vh=4.5
.d2a default vl=0 vh=5 vx=2.5 tr=1n tf=1n
.finesim -auto -np 8 finesim.sp

 注:

(1).a2d表示模拟到数字的电压阈,.d2a表示数字到模拟的电压阈。

(2)finesim -auto -np 6 finesim.sp 调用finesim多核仿真(支持1~16)。

(3)该文件需要在testbench.v里添加 initial $finesim_confg("finesim_cfg");。

第四步:激励文件finesim.sp撰写

其内容如下:

.inc './finemix.sp'
.inc './xxx.cdl'

.option finesim_speed = 1
.option finesim_mode  = promd

.option post probe
.probe v(*) level = 3
.probe i(*) level = 2

.lprobe level = 4 v(*) high = 1.0 low = 0.4

.tran 1n 1m

.end

注:

(1)finemix.sp为工具自动生成的文件,里面包含数模接口信号的层次信息,必须调用。

(2)利用probe可打印信号的模拟电压和电流,当前cdl网表为第一层,若想打印内部模块的信号,则增加level的层数即可。

(3)利用lprobe可打印信号的数字电平,打印层数以及打印门限都可自主定义。上图中表示高于1.0V波形打印为1,低于0.4V则波形打印为0。

第五步:运行脚本生成波形

在仿真目录下运行 make one 会启动finesim工具,仿真结束后会生成两个“.fsdb”的波形文件,其中finesim.fsdb为模拟波形(该波形文件的名称取决于激励文件的命名)

另外一个波形为数字波形,可在testbench.v里自主定义名称。

写到最后:

本文当前只讲述了以数字为顶层的混合仿真环境的搭建,后续会更新以模拟为顶层的混合仿真环境的搭建。

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值