微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > for 循环的问题

for 循环的问题

时间:10-02 整理:3721RD 点击:

定义了一个 integer i;
always @ (posedge clk or negedge rst)
    begin
for (i=0;i<=7;i=i+1)
            begin
                encode[55-i*7:52-i*7]<=data_in[31-i*4:28-i*4];
            end
    end
报错:Quartus Error : i is not a constant
Modelsim :Range must be bounded by constant expressions.
高手请指教,不胜感激涕零!

把i定义成integer即可

把i定义成integer即可,是的要改,可是还是不行呀,还是报错。我觉着错误在这里
encode[55-i*7:52-i*7]<=data_in[31-i*4:28-i*4];

高手帮咱一把呀!

非常量不能用在slice边界定义选择中

搞定没?

没有硬件概念。for循环必须确定i的值才能综合。

没搞定。
                encode[55:52]=data_in[31:28];
                encode[48:45]=data_in[27:24];
                encode[41:38]=data_in[23:20];
                encode[34:31]=data_in[19:16];
                encode[27:24]=data_in[15:12];
                encode[20:17]=data_in[11:8];
                encode[13:10]=data_in[7:4];
                encode[6:3]=data_in[3:0];
只有这样写了6# schj

请注意,你用的是verilog。不是c。你搞出来的东西是硬件电路。不是跑在cpu上的程序。强烈建议不要用for。以便更好对电路结构控制。刚开始肯定不习惯。但是对以后深入理解和应用有好处。

听人说for的综合很费资源,看来还是要展开写好。多谢!

你这个使用连接赋值也是可以的,毕竟encode其他位置你也要赋值嘛。

感觉小编把verilog当c来写了  你要是搞清楚for语句怎么综合出来的 那你就知道原因了。

毕竟是硬件电路。还有I的位宽没定义吧

正确,位宽里面不能有i,我是这样理解的

说得太好了,顶一个

这样应该是可以的啊,你要不是一下 把for 套在 always外面

顶顶,高手解释透彻点

时代变了!现在综合工具对for支持的很好了!
你这样写!
encode[52-i*7+:4]<=data_in[28-i*4+:4];
这样就可以了,这个是verilog2001的增量下标的语法!

定义成int

http://blog.163.com/yunwang2008@126/blog/static/11531450320107414623395/

我也遇到这个问题了   第13 个问题

13.Verilog-2001向量部分选择
在Verilog-1995中,可以选择向量的任一位输出,也可以选择向量的连续几位输出,不过此时连续几位的始末数值的index需要是常量。而在Verilog-2001中,可以用变量作为index,进行part select。
     
      [base_expr +: width_expr] //positive offset
      [base_expr -: width_expr] //negative offset
     
      其中base_expr可以是变量,而width_expr必须是常量。+:表示由base_expr向上增长width_expr位,-:表示由base_expr向上递减width_expr位。例如:
     
      reg [63:0] word;
      reg [3:0] byte_num; //a value from 0 to 7
      wire [7:0] byteN = word[byte_num*8 +: 8];
     
      如果byte_num的值为4,则word[39:32]赋值给byteN。

学习了

路过。

学习了

学习一下了,呵呵。

学习一下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top