[求助] 求助: for 循环的问题

eeleader   2010-4-4 21:35 楼主
定义了一个 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.
高手请指教,不胜感激涕零!

回复评论 (4)

回复 楼主 eeleader 的帖子

不知道你这段代买是来自测试文件呢,还是被测文件。
如果是被测文件,我质疑这个模块能综合么?想想看,它的电路是什么样的,怎样才能实现这样的逻辑?估计是不行的。
点赞  2011-12-24 17:05

哪怎样才能实现上面的功能呀?

 

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-12-26 16:20
reg [2:0] i;


always @ (posedge clk or negedge rst)
begin
i<=i+1;
end


always @ (posedge clk or negedge rst)
begin
encode[55-i*7:52-i*7]<=data_in[31-i*4:28-i*4];
end
http://item.taobao.com/item.htm?id=12366456386 Arduino 兼容的  maple
点赞  2011-12-26 16:55
wire        [55:0]        encode_wire;
reg         [55:0]        encode;

genvar i;
generate
for(i=0;i<7;i=i+1)
begin : loop
        assign encode_wire[55-i*7:52-i*7] = data_in[31-i*4:28-i*4];
end
endgenerate

always @ (posedge clk)
begin
        encode <= encode_wire;
end
点赞  2011-12-26 22:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复