在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2827|回复: 7

[求助] 小数PLL 求助

[复制链接]
发表于 2020-5-2 23:06:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
那位大神做过小数PLL的frequency divider?
看了一些论文,做了一个下图这种结构的frequency divider

每个模块都正常工作。
整体也能仿真,但是改变16bit Sigma Delta Modulator 输入的定值,
频率不能线性变化。
这是什么问题?



freqdiv.jpg
发表于 2020-5-3 09:44:59 | 显示全部楼层
这个图是对的,不太明白你的问题,什么线性变化?是你把16bit从0x00变到0xFF,发现频率不是线性变化的吗?如果是这样,建议你再看看书本
 楼主| 发表于 2020-5-3 09:52:41 | 显示全部楼层
设这个意思  00---FF变化, Frequency 变化不是线性的

 楼主| 发表于 2020-5-3 11:30:29 | 显示全部楼层


jiaoda 发表于 2020-5-3 09:44
这个图是对的,不太明白你的问题,什么线性变化?是你把16bit从0x00变到0xFF,发现频率不是线性变化的吗? ...


// The 2nd order digital SDMOD.

module sdmod(clk, resetb, xin, dither, yn);

  input        clk;     // clk
  input        resetb;     // Reset
  input [15:0] xin;  
  input [4:0]  dither;  

  output [1:0] yn;
  
  reg  [15:0]  integ1out;
  wire [15:0]  integ1in;
  reg  [15:0]  integ2out;
  wire [15:0]  integ2in;
  wire [16:0]  sum1,sum2;
  reg          sum2dly;

  always @ (posedge clk or negedge resetb) begin
    if (!resetb) begin
      integ1out <= 16'b0;
      integ2out <= 16'b0;
      sum2dly <= 1'b0;
    end
    else begin
      integ1out <= integ1in;
      integ2out <= integ2in;
      sum2dly <= sum2[16];
    end
  end

  assign      sum1 = xin + integ1out;
  assign      integ1in = sum1[15:0];
  assign      sum2 = integ1in + integ2out;
  assign      integ2in = sum2[15:0];
  assign      yn= sum1[16] + sum2[16] - sum2dly;

endmodule

我感觉是modulator的问题。
请大神帮忙看一下,这个MASH2阶级联的modulator有什么问题吗?


发表于 2020-5-3 15:06:22 | 显示全部楼层
mash2给一个sine输入信号,分析输出看是否正常:
1)过一个理想LPF,看能否复现sine时域波形
2)做频谱分析,看能否看到sine主信号和40dB noise shaping
 楼主| 发表于 2020-5-3 18:09:58 | 显示全部楼层


scpuke 发表于 2020-5-3 15:06
mash2给一个sine输入信号,分析输出看是否正常:
1)过一个理想LPF,看能否复现sine时域波形
2)做频谱分析 ...


如何产生一个数字sinwave呢?
verilog 里面理想滤波器,怎么做?


发表于 2020-5-4 10:16:31 | 显示全部楼层


8i8i9o9o 发表于 2020-5-3 11:30
// The 2nd order digital SDMOD.

module sdmod(clk, resetb, xin, dither, yn);


功能上看不出什么问题,貌似是对的,建议你根据别人建议,看下是否低通sine后能否输出正确波形,或者输入dc后,能否还原dc值,用matlab产生verilog激励波形,然后把输出码FFT到频域看下波形
发表于 2020-5-4 13:11:48 | 显示全部楼层


8i8i9o9o 发表于 2020-5-3 18:09
如何产生一个数字sinwave呢?
verilog 里面理想滤波器,怎么做?


用veriloga写一个16bits的ADC,采样模拟信号就得到了16bits的数字sinwave。mash11的的三位输出信号按位相加,得到的和再经过LPF。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-2-13 22:43 , Processed in 0.020444 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表