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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: cfpdl

[求助] verilog语言12x12位有符号数代码

[复制链接]
发表于 2016-1-14 19:05:18 | 显示全部楼层
回复 10# cfpdl

决定是23位还是24的要素是你的乘数或者被乘数是否能取负的最大。也即-2048.如果能出现这种情况,就是24位。你的代码如果在不出现-2048的情况下是没问题的
发表于 2016-1-15 09:41:19 | 显示全部楼层
回复 9# cfpdl


   我用你的代码试了一下,加入4*4的乘法计算,1001*1001就是不对,如果数据接口进来的是补码(可能你的是其他设备进来的数据吧),那你这种计算方式是对的,感觉fpga代码里面好像都是直接计算的。   判断23位还是24位就像whz7783478 说的那样,感觉你可以用计算器试一下,这样自己就清晰了
    如果我说的不对请纠正
 楼主| 发表于 2016-1-15 14:10:39 | 显示全部楼层
回复 12# z894811350


   我是到时还要在modelsim上仿真,我被测试程序输进来的是原码,好像在网上看到说不用考虑补码什么的,我改了一下程序,但用quartus仿真波形不大对

module mult12X12(clock,dataa,datab,result);

output [23:0] result;

input clock;

input signed [11:0] dataa;

input  signed [11:0] datab;

reg signed [11:0] dataa_reg;

reg signed [11:0] datab_reg;

reg signed [23:0] result;

wire signed [23:0] mult_result;

assign mult_result =dataa_reg*datab_reg;

always@(posedge clock)

  begin

   dataa_reg<=dataa;

   datab_reg<=datab;

   result<=mult_result;

   end

endmodule

QQ截图20160114191849.jpg
 楼主| 发表于 2016-1-15 14:12:32 | 显示全部楼层
回复 11# whz7783478


   我的数里有-2047,没有到-2048,还是不大确定在modelsim要不要用补码,能帮我看看我改了之后的我程序吗,在楼下
发表于 2016-1-15 14:47:30 | 显示全部楼层
本帖最后由 z894811350 于 2016-1-15 14:49 编辑

1、你加上复位试试
2、你是要把进来的数据锁住还是输出的数据锁住
我写一个简单的锁进来数据的例子
assign mult_result =dataa_reg*datab_reg;
always@(posedge clock)
begin
    if(!rst_l)
    begin
        dataa_reg<=12‘d0;
        datab_reg<=12’d0;
    end
    else
    begin
    dataa_reg<=dataa;
    datab_reg<=datab;
    end
end
3、要不要补码你可以用计算器算,感觉第23位不足以判断就用24位(个人感觉是,我也没弄过)
 楼主| 发表于 2016-1-15 14:58:06 | 显示全部楼层
回复 15# z894811350


   额,这是我的fir滤波器原理图,就是数据输入进来通过移位寄存器,每个都乘法器实现x(n-k)*h(k),我也不清楚你说的要锁住哪个,还有为什么要加复位
图片1.png
发表于 2016-1-15 15:10:48 | 显示全部楼层
回复 16# cfpdl


   我是看到你那里有乱数据,所以想着让你复位试试。   看你的仿真结果输出的乱,感觉是没控制好。
 楼主| 发表于 2016-3-1 14:34:57 | 显示全部楼层
木人了1啊啊
发表于 2016-3-1 20:15:25 | 显示全部楼层
太难受了  下个书  要几十个信源
发表于 2016-3-2 06:14:54 | 显示全部楼层
12乘12输出是24位的,包括符号位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-26 19:58 , Processed in 0.030816 second(s), 6 queries , Gzip On, Redis On.

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