利用 Verilog-A 实现数据采样


在 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

版权声明: 本站文章版权所有,转载须以超链接形式标明文章原始出处和版权信息。

利用 Verilog-A 实现数据采样》有2个想法

  1. lq

    我想在transnoise时多次循环的跑仿真,请问有没有方法能传参数给输出文件名,就不会重复覆盖输出文件内容

    回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注