找回密码
 注册
关于网站域名变更的通知
查看: 298|回复: 3
打印 上一主题 下一主题

verilog中减法相关问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-7-7 18:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
我设置一个初值为0的计数器counter[23:0],一个输入信号B[23:0]。设置一个初始值为0的falg寄存器。  _/ a$ W) n5 x* D8 r; t
veriloG代码如下:
( A: G, }) M3 O+ G& _3 X& c

% p7 x8 p" K! K+ Y2 s; ~IF(counter==B-1)/ D) j7 j4 Z* U/ N2 r
begin
* u) P# c" m: b6 M          counter<=0;* e) j0 {1 Y0 |# j4 K7 Z/ f
          flag<=1;
" w( D1 Q5 Y; o' z3 Q) b3 c8 eend
( E* w4 ~. @1 H: Melse begin
0 }0 ~4 ?& D" Q& b4 h9 A! e3 b        counter<=counter+1;/ q; |; }' M$ G8 \
        flag<=0;
4 N" p+ ?3 _) S7 M. @9 ?% C/ c( X       end
; |, Q; C* }4 X& F4 c. i. t6 L; |3 F. ^

0 B7 p( z% V3 \$ u% K$ k" Z+ G当B=0时,我的仿真结果中发现,flag信号并没有置位。我想问一下,在FPGA中,当B=0时,B-1是24'hFFFFFF吗?如果是的话,当counter计数到24'hFFFFFF时条件已经满足了,为什么我的flag信号没有置位呢?还是说verilog在计算时,可以判断正负?+ R) [: }& m3 ]5 w
希望哪位大神可以帮忙解决问题,谢谢。
% P+ }7 ]* B2 L2 c2 K, ~' T+ f# x

该用户从未签到

2#
发表于 2020-7-7 18:31 | 只看该作者
后面设置了一个wire型的M【23:0】,: E+ Z1 o; t$ R2 t* O4 [8 o) P4 _
且assign M=B-1;
, u  w; G# a) t! y" c% V, i然后将代码变成:* V; x* y  s; @; d9 t
- ]7 P5 _+ E5 t7 r0 G
if(counter==M)$ r$ l+ @" B( ]: ~! D. ^0 e6 W
begin* C! ^9 b( `8 I' |6 L, g
          counter<=0;
( d) x1 A) S7 \4 b' P, P          flag<=1;2 e2 ]; @8 \" ^" {: L
end
% s3 s. z; a9 _' P+ A2 yelse begin
( L) o* N7 p' X- }0 f) d, ^  D, y        counter<=counter+1;
5 N5 B/ _6 d8 }$ F8 D, {3 w5 N) M        flag<=0;
' l7 U/ F. \3 d1 d       end0 }  @7 ~; [+ h: N8 a/ n/ w, a
B=0的情况下,得出的仿真结果中,M=24‘HFFFFFF;$ a2 ]! N9 e5 U) i
而flag信号在counter计数到24‘hFFFFFF时正确置位了。

该用户从未签到

3#
 楼主| 发表于 2020-7-7 18:31 | 只看该作者
我自己找到问题了,我发现判断B-1时,由于没有给1设置位宽,它自己当成32bit做减法了,改成B-1‘b1就好了。’

点评

当成32位宽做减法会有什么问题呢?  详情 回复 发表于 2020-7-8 11:14

该用户从未签到

4#
发表于 2020-7-8 11:14 | 只看该作者
outline9 发表于 2020-7-7 18:31' [5 G: v, b& j- j7 X
我自己找到问题了,我发现判断B-1时,由于没有给1设置位宽,它自己当成32bit做减法了,改成B-1‘b1就好了。 ...
; ?  C/ a! O3 z3 M% X2 c
当成32位宽做减法会有什么问题呢?
  `' H; w1 x+ J; S! A' {# H* U& q: k
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-21 20:42 , Processed in 0.140625 second(s), 28 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表