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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] verilog关于负数的一个问题

[复制链接]
发表于 2023-7-6 12:55:08 | 显示全部楼层 |阅读模式

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

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

x

reg [7:0] cnt_1 ,cnt_2;
always@(posedge sys_clk or negedge rst_n)begin
    if(~rst_n)
        cnt_1 <= 0;
        cnt_2 <= 0;
    else if (cnt_1 == N - 1)begin
        cnt_1 <= 0;
        cnt_2 <= cnt_2 + 1;
    end
    else
        cnt_1 <= cnt_1 + 1;
end

在上述情况下,若N是一个8bit寄存器输入,输入值为0,cnt_1 == N - 1的条件社么时候会触发?

在仿真过程中 cnt_2是一直为0的,cnt_1 == N - 1一直没有触发,综合后也是一直没有触发,为什么这里不是当cnt_1 == 255时,cnt_2加1?
        

发表于 2023-7-6 14:02:53 | 显示全部楼层
“1”没有申明位宽,默认为32位integer,N-1的结果被拓展成32位了,cnt_1 == 2^32-1才会触发。
把1改成1'd1可以解决问题。
发表于 2023-7-7 13:52:07 | 显示全部楼层


G7ngko 发表于 2023-7-6 14:02
“1”没有申明位宽,默认为32位integer,N-1的结果被拓展成32位了,cnt_1 == 2^32-1才会触发。
把1改成1'd1 ...


你好 这种情况下 减法被扩位, 加法为什么不扩位, 因为加法情况下这样写挺多的
发表于 2023-7-7 14:01:14 | 显示全部楼层


767781537 发表于 2023-7-7 13:52
你好 这种情况下 减法被扩位, 加法为什么不扩位, 因为加法情况下这样写挺多的
...


加法也扩啊
发表于 2023-7-7 14:14:08 | 显示全部楼层


767781537 发表于 2023-7-7 13:52
你好 这种情况下 减法被扩位, 加法为什么不扩位, 因为加法情况下这样写挺多的
...


仿真后发现加法也不行,所以还是要养成好的编码习惯
发表于 2023-7-7 14:15:10 | 显示全部楼层


谢谢 今天学到了
发表于 2023-7-7 16:32:09 | 显示全部楼层


767781537 发表于 2023-7-7 13:52
你好 这种情况下 减法被扩位, 加法为什么不扩位, 因为加法情况下这样写挺多的
...


你有没有想过一个问题,就算是扩位到32,-1后也是255
发表于 2023-7-7 18:05:49 | 显示全部楼层


peanut_cake 发表于 2023-7-7 16:32
你有没有想过一个问题,就算是扩位到32,-1后也是255


只能理解成左边也扩位了,变成 {24'd0,8'd255}了, 蹲大神解答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-22 07:53 , Processed in 0.025084 second(s), 6 queries , Gzip On, Redis On.

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