在 Cadence ADE 中有很多方法可以实现数据的采样,例如在 tran 分析中设置 strobe period 或是利用 calculator 中的 函数实现 re-sample。这里介绍一下利用 verilog-A model 来实现的数据采样,这种方法的一个优点是可以直接将采样数据保存到文件(而不用像前两种方法需要用再利用 calculator print 到文件)以方便后续分析。
具体的 Verilog-A 实现如下,主要是利用的 Verilog-A 中的文件相关命令 fopen,fstrobe 和 fclose。注意最后保存的文件 data_save.txt 是在仿真路径下面的 netlist 目录下而不是 psf 目录下。
// VerilogA for Model_HL, data_sample, veriloga `include "constants.vams" `include "disciplines.vams" module data_sample(clk,in,out); input clk, in; output out; electrical clk, in, out; parameter real vth=1.5; integer out_file; real sig_out; analog begin @(initial_step) begin out_file=$fopen("date_save.txt"); end @(cross(V(clk)-vth, 1)) begin sig_out=V(in); $fstrobe(out_file, "%f", sig_out); end @(final_step) begin $fclose(out_file); end V(out) <+ sig_out; end endmodule
我想在transnoise时多次循环的跑仿真,请问有没有方法能传参数给输出文件名,就不会重复覆盖输出文件内容
感谢