13年8个月前IP:未同步
519016
6楼
刚仔细看了下楼主的verilog代码,打死我也不信这就是delta sigma DAC。
delta sigma DAC的数字部分是把输出值(取值1或-1)做积分,积分结果与输入数据(一般是并行的)做比较,根据比较结果决定是否反转输出值。
而从楼主这段代码看,没有看出这个意思:
“10.always @ (posedge clk or negedge nrst)
11.begin
12.    if(!nrst)
13.    begin
14.        acc <= 17'b0;
15.    end
16.    else
17.    begin
18.        acc <= acc[`wl-2:0] + data;
19.    end
20.end
21.assign dout = acc[`wl-1];
22.endmodule
”
这段代码解读如下:
复位时,把累加器置零;
然后在每个时钟沿处做如下操作:
将输入数据累加到累加器里;
用累加器的溢出位作为输出信号。
这种做法,假设输入一个数值,输出只会是方波;且方波的频率随输入数值的增大而减小,因为每次累加的数越大,累加器的溢出就越频繁。
怀疑楼主把delta sigma dac理解错了。
评论
文号 / 519016

千古风流
名片发私信
学术分 4
总主题 56 帖总回复 1055 楼拥有证书:进士 学者 机友 笔友
注册于 2007/09/30 20:46:21最后登录 2026/10/20 23:11:51
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

有广泛科技爱好的中年大叔。 本职是通信研究工程师/科学家。 爱好机械,电子/信号处理/单片机/数电/模电/强电,物理/量子力学/电动力学/宇宙/粒子,化学,电机,热机,材料。。。 追求理解世间万物,对how it works有迷之执着。 渴望从或微小或宏大的事物中看到某种先定的和谐,并品味上帝造物之美。

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的