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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1581|回复: 4

[求助] verilog代码design_vision导入失败

[复制链接]
发表于 2022-7-23 00:17:18 | 显示全部楼层 |阅读模式
50资产
数字电路的输入端是一个256hz的信号,我的数字电路每100秒要处理一次,数据量太大处理就需要用for循环(以下贴一小段,为接受信号,每一百个打包一下塞给下一个模块,用vivado行为级别仿真能出正确的结果,但是这么简单的一段已经无法导入了design_vision了,outsignal并不重要)
module tfor(input [10:0]insignal,
output wire [10:0]outsignal,
    input rst,
    input clk
    );
    reg [15:0]count;
    reg [10:0]memory[25559:0];
    reg [10:0]memory2[25559:0];
    integer i;
     always @(posedge clk or negedge rst)begin
    if (rst==1'b0) begin
    count<=0;
    for(i=0;i<25600;i=i+1)begin
        memory[ i ]<=0;
    end
    end
    else if(count<25600)begin
    memory[count][10:0]<=insignal[10:0];

    count<=count+1;
    end
   else begin

   for(i=0;i<25600;i=i+1)begin
   memory2[ i ]<=memory[ i ];
   end

   count<=0;
   end
   end   
assign outsignal=memory2[10];   
endmodule



我在design_vision中file>>read之后,会提示我有error,说是到循环上限了,然后我用“set helin_while_loop_iterations 25601” 调高循环上限。
然后又报错栈到上限了,于是我用"limit stacksize 25601"调高栈的上限然后终于没有error了,然后design_vision给我报了几个warming,之后卡死了,试了几次都这样

我推测是循环可能写的不对,据说是不是要用generate for才能复制电路,但是我又查找资料说是always中不适合用generate for,所以应该怎么避免这个问题呢?是循环上限25600数字太大了吗?我代码里面又应该怎么避免这个问题呢?救救孩子

最佳答案

查看完整内容

Brother verilog is a Hardware Description Language and you are trying to use it like normal software language! Think about what hardware your code is going to produce!
发表于 2022-7-23 00:17:19 | 显示全部楼层
Brother verilog is a Hardware Description Language and you are trying to use it like normal software language!
Think about what hardware your code is going to produce!

点评

说得在理,常规应该实现的是RTL设计。太行为化的话,即使有结果,不同工具也可能不同  发表于 2022-7-23 10:13
 楼主| 发表于 2022-7-23 20:01:28 | 显示全部楼层


ashish 发表于 2022-7-23 02:15
Brother verilog is a Hardware Description Language and you are trying to use it like normal software ...


谢谢二位,现在让我困惑的是我现在描述的这个电路并不复杂,我想要做的仅仅是在25600个寄存器组1和25600个寄存器组2之间分别连一根线,这个数据量太大了我也不能按位置去写,所以用了这个for循环,但是我没有查找到更硬件的写法。
另外,我当时是觉得这个模块工作简单,于是没有用FSM状态机去写,其余的模块都是FSM,是不是这个模块也要用三段FSM写,这样才更加像是硬件语言呢
发表于 2022-7-25 01:55:43 | 显示全部楼层
Instead of using so many registers (FFs) you can think of using block rams in FPGA OR memory in ASIC.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 02:56 , Processed in 0.015463 second(s), 7 queries , Gzip On, Redis On.

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