我想问一个关于用FPGA实现数字下变频DDC过程中的问题

我想问一个关于用FPGA实现数字下变频DDC过程中的问题,第1张

可能我游档用的DDC和你的不一样,我是根橘磨败据带通采样定理,利用抽取实现的(带通滤波器+抽取)。

你这问圆颤题是关于截位的,定点数截位关键是小数点的位置。

保留多少位主要看你想要的精度了,例如两个定点数相乘,截位其实就是截掉小数点最后面的数,假如乘积结果为32bit,p31p30p29p28(实际小数点在此)p27p26..p0,若保留小数点后12位,则最大截位误差为2^-12,也就是跟不截位相计算结果最大相差不到0.001,你要看这个精度对于你够不够,一般我们计算是够了,如果不够继续保留多些,如果精度只要满足千分之一,保留小数点后10位都可以了。

可以再讨论。

这是把十六进制则颂转成十进制来显示

需要解释的就

if(DTO[4:0]>=5'b01010) begin//相加结果超过10的话

D[3:0] = (DT0[3:0]+4'b0110)//十六正姿进制的数需要举盯绝加上6来完成进位

D[4] = 1

end

这段

D[3:0] = (DT0[3:0]+4'b0110)D[4] = 1两句等价于D[4:0] = DT0[4:0]+4'b0110一句

另外,时序逻辑用<=来赋值,不要用=

REG_tmp := Q_tmp &SI

REG_tmp 是3位二进制数,Q_tmp,是2位二进制数,SI是1位二进制数。意思就是一个2位数和1个1位数合起来一个3位数赋给1个3位数。

Q_tmp <= REG_tmp(1 DOWNTO 0)

写成判陪Verilog就是 :

{Q_tmp[1],Q_tmp[0]}<={Q_tmp[0],SI}

时钟沿上升沿作掘乎蠢用下 把输入的SI移到Q_tmp[0]上,Q_tmp[0]移到Q_tmp[1];

第一个clk吧SI移到Q_tmp[0],现在SI就是Q_tmp[0],顷孙在下个clk他又移到Q_tmp[1]。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12277043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存