|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 3299118449luis 于 2024-11-7 06:56 编辑
由于电路仿真需要引入一个时域噪声源,可惜Cadence的内建库里面没有现成的时域噪声源。经查阅发现,可用Verilog A来创建时域噪声源。
-------------------------------------------------------------------------------------------------
// VerilogA for test, vwhite, veriloga
`include "constants.vams"
`include "disciplines.vams"
module vwhite(out);
output out;
electrical out;
parameter period = 1.0;
parameter amplitude = 1.0;
parameter offset = 0;
parameter seed_nummer = 100;
parameter adjust_factor = 10000000;
real x, y;
analog begin
@(timer(0,period))
x = $dist_normal(seed_nummer,offset,adjust_factor);
V(out)<+transition(x/(adjust_factor)*amplitude,0);
end
endmodule
-------------------------------------------------------------------------------------------------
其中period为采样周期;
offset为白噪声源幅度的平均值;
seed_nummer为用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed_nummer,则每次生成的随机数都相同;
adjust_factor为noise取值可能性的数量,越大波形越接近真实白噪声源;
amplitude为噪声在时域内的幅度,x经过归一化后与amplitude相乘得到最终噪声。
|
|