第一步:Makefile仿真命令
one:
ncverilog +access+rwc +nc64bit +loadvpi=finesim.so:finesim_startup -f run.f
第二步:环境结构
(1)以模拟为顶层,顾名思义是把CDL网表中某一个模块替换为数字的function,其余全是CDL,以上图为例,把其中inv替换为数字的function。
(2)需要文件:testbench.v、反相器inv的function(inv.v)以及run.f。
(3)run.f内容如下
./testbench.v
./inv.v
(4)testbench.v内容如下:
module testbench;
//------------------------
inv U_inv(
.A (i),
.Z (o)
);
//------------------------
initial
begin
$fsdbDumpfile("waves.fsdb");
$fsdbDumpvars;
$fsdbDumpflush;
end
//------------------------
initial
begin
$finesim_config(".finesim -auto -np 8 -o sim sim.sp");
$finesim_instance(U_inv,"x1.U_inv");
end
endmodule
注:
x1.U_inv 为反相器在CDL网表里的层次信息。
第三步:激励文件sim.sp撰写
.inc './xxx.cdl'
.option finesim_speed = 1
.option finesim_mode = promd
.option finesim_fsdb_split_time="1m"
x1 in1 in2 in3 out1 out2 out3 top
.SUBCKT inv i o
.ENDS
.option post probe
.probe v(*) level = 1
.probe i(*) level = 1
.lprobe level = 2 v(*) high = 4.5 low = 0.4
.tran 1n 2m
.end
注:
1、 x1 in1 in2 in3 out1 out2 out3 top 端口顺序一定要和CDL的顶层端口顺序一致。
2、.SUBCKT inv i o 端口顺序一定要和反相器的端口顺序一致。
3、finesim_mode 有很多种模式,可根据电路本身需求进行选择。
spicead :high precision analog circuits
spicehd :high sensitive analog circuits
spicemd :general spice mode for all circuits types
spicexd :mixed signals design/extracted post layout
prohd :large mixed signal design/leakage/power simulations
promd :timing simulation
proxd :functional verifications
第四步:运行Makefile仿真命令
运行make one 仿真命令,会生成两个sim.fsdb,因为 finesim_fsdb_split_time="1m" 这条命令会把波形以1m为时间节点分割成两个fsdb。
标签:finesim,option,inv,ncverilog,fsdb,testbench,x1,spice From: https://blog.csdn.net/weixin_43672412/article/details/139637000