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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2003|回复: 5

[求助] 关于for循环的疑问

[复制链接]
发表于 2015-4-15 17:22:04 | 显示全部楼层 |阅读模式

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

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

x
在一个模块中有多处用到了for循环,但使用相同的累计数变量,会怎么样呢?例如下面这样,定义了一个变量m,在两个for循环中使用。大概是按照C语言的思路来的,之前一直没有想过这个问题,觉得这个m也没有什么真实含义,就是赋值的时候写起来方便罢了。仿真和上板测试也都能够通过。今天看书的时候发现了这个问题,在想之前是不是太侥幸了,同一个变量不应该出现在多个过程块?
求达人指点!




  1. integer m;

  2. always @ (posedge clk)
  3. begin
  4.    if (!rst) begin
  5.       ...
  6.    end
  7.    else begin
  8.       for (m = 0; m < 4; m = m + 1)
  9.       begin
  10.          a[m] <= XXX;
  11.          ......
  12.       end
  13.    end
  14. end

  15. always @ (posedge clk)
  16. begin
  17.    if (!rst) begin
  18.       ...
  19.    end
  20.    else begin
  21.       for (m = 0; m < 4; m = m + 1)
  22.       begin
  23.          b[m] <= XXX;
  24.          ......
  25.       end
  26.    end
  27. end


复制代码
发表于 2015-4-15 17:32:01 | 显示全部楼层
触发条件一模一样,无影响。。如果不同就小心了。。。
 楼主| 发表于 2015-4-15 17:48:26 | 显示全部楼层
回复 2# A1985

比如一个条件是m<4,一个是m<8,就不可以,是吗?还是always@(),括号里的不一样?
发表于 2015-4-15 18:00:28 | 显示全部楼层
我认为这个for循环如果在testbench中要小心用,特别是带时间参数的for语句,因为有执行时间的概念; 在综合代码中完全没必要太在意,for 语句只要没有上下两层for循环用相同的变量就没问题,for语句是要被替换为并行语句的,两个不同块中的同一for变量值不会交替执行增减,所以不会有问题,我的好多设计中都是一个变量在若干个块中用,没发现问题
发表于 2015-4-15 19:48:56 | 显示全部楼层
感觉应该没事,每一个都是独立过程,而且都有初始化。
 楼主| 发表于 2015-4-16 09:21:16 | 显示全部楼层
回复 4# goswami

非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-26 02:58 , Processed in 0.020605 second(s), 9 queries , Gzip On, MemCached On.

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