[CPLD] 除法器余数怎么处理

[复制链接]
3079|4
 楼主| yang4133 发表于 2013-1-28 22:08 | 显示全部楼层 |阅读模式
我是用ISE的IP核生成的除法器,我想将余数乘于2^24,我该怎样做。例:小数为0.72*2^24=12079595; 是直接将余数向左移动24位吗。

我看到一个程序是这样写的,麻烦大家帮我解释一下这段程序
   WHEN C2 =>
     CALC<=C3;
     DIV_ZI_SIG<=DIV_REMAIN(12 DOWNTO 0) & X"0000" & "000";  --左移19位再除以625
     DIV_MU_SIG<="0001001110001";
   WHEN C3 =>
    CALC<=C4;
    IF DIV_DELAY=100 THEN  --延时40个时钟周期,取出商和余数
     DIV_DELAY<=0;
     OSC_DAT_04<=DIV_QUO(29 DOWNTO 0) & "00";  --将商赋给一本振的03控制寄存器12
     CALC<=C4;
    ELSE
     DIV_DELAY<=DIV_DELAY+1;
     CALC<=C3;
    END IF;

本帖子中包含更多资源

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

×
 楼主| yang4133 发表于 2013-1-29 17:59 | 显示全部楼层
大家帮帮忙啊
lwq030736 发表于 2013-1-30 08:18 | 显示全部楼层
直接左移24位
千里风123 发表于 2013-1-30 11:35 | 显示全部楼层
程序是先将被除数变成左移19BIT,相当于*2^19,再与625一起送到IP中,在100个DELAY后得到商,应该是这样的(实际的被除数*2^N)/(实际的被除数*2^M)=商*2^(N-M),是DDS或PLL赋值吧!
wuhaidianzi 发表于 2013-2-26 21:43 | 显示全部楼层
左移24位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

78

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部