完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
当我合成我的程序。
它显示此错误消息:超出循环计数限制。 条件永远不会错。 这是我的verilog文件: 参数ADDR_WIDTH = 15; 总是@(negedge ceb或posedge web)开始 if(ceb)开始 for(i = 0; i |
|
相关推荐
5个回答
|
|
cood写道:
当我合成我的程序。 它显示此错误消息:超出循环计数限制。 条件永远不会错。 这是我的verilog文件: 参数ADDR_WIDTH = 15; 总是@(negedge ceb或posedge web)开始 if(ceb)开始 for(i = 0; i 首先,看起来你正试图用异步复位创建一个16K乘8的RAM。 循环应该进行16,384次迭代,但综合工具可能要小得多 限制循环(有充分理由)。 真正的RAM没有复位输入,所以这样做 实际上实现为131,072个触发器。 你真的想要吗? 其次,这段代码片段最多也是不完整的,但是如果你想要一个 如“negedge ceb”暗示的主动 - 低重置然后你应该放置你的 在“if(~ceb)”或“if(!ceb)”或“if(ceb == 1'b0)”块中重置逻辑 “if(ceb)”。 如果你没有循环错误,你会遇到一个 “糟糕的同步描述”问题。 最后,如果你想推断,我建议你看一下语言模板 记忆。 这些显示了已知可以正确合成的代码 阻止RAM或分布式RAM。 它还让您感受到局限性 每个都没有,即仅对存储器阵列本身没有任何重置 用于输出寄存器,并且不能异步读取块RAM。 HTH, 的Gabor - Gabor 在原帖中查看解决方案 |
|
|
|
嗨,
即使Verilog看起来像C代码,它们也是完全不同的语言。 你不应该使用旧的“C”风格思想。 对于这个代码示例,您希望工具如何理解“For”? 重要的是:C代码作为代码一步一步地运行,而Verilog并没有作为代码实现。 这是一个硬件电路! 1.主要使用SYNC逻辑。 2.使用IP 对于这样的代码,如果你想制作一个8bit x 256 ram并想要重置它: (由CoreGenerator制作RAM8x256 IP) ======================== 模块测试( CLK, 首先, CEB, 网络, 加, DIN, DOUT, ); 输入clk; 输入ceb; 输入网; 输入[7:0]添加; 输入[7:0] din; 输出[7:0] dout; RAM8x256 RAM8x2561( .clka(CLK), .rsta(〜CEB), .wea(~web),// Bus [0:0] .addra(addr),//巴士[7:0] .dina(din),//巴士[7:0] .douta(dout)//巴士[7:0] ); endmodule |
|
|
|
cood写道:
当我合成我的程序。 它显示此错误消息:超出循环计数限制。 条件永远不会错。 这是我的verilog文件: 参数ADDR_WIDTH = 15; 总是@(negedge ceb或posedge web)开始 if(ceb)开始 for(i = 0; i 首先,看起来你正试图用异步复位创建一个16K乘8的RAM。 循环应该进行16,384次迭代,但综合工具可能要小得多 限制循环(有充分理由)。 真正的RAM没有复位输入,所以这样做 实际上实现为131,072个触发器。 你真的想要吗? 其次,这段代码片段最多也是不完整的,但是如果你想要一个 如“negedge ceb”暗示的主动 - 低重置然后你应该放置你的 在“if(~ceb)”或“if(!ceb)”或“if(ceb == 1'b0)”块中重置逻辑 “if(ceb)”。 如果你没有循环错误,你会遇到一个 “糟糕的同步描述”问题。 最后,如果你想推断,我建议你看一下语言模板 记忆。 这些显示了已知可以正确合成的代码 阻止RAM或分布式RAM。 它还让您感受到局限性 每个都没有,即仅对存储器阵列本身没有任何重置 用于输出寄存器,并且不能异步读取块RAM。 HTH, 的Gabor - Gabor |
|
|
|
|
|
|
|
嗨,大家好!
我希望你能帮助我,我也有这个问题,我已经花了几个小时试图解决它,但我没有任何想法。 我正在尝试做一个10 MHz的频率计,我必须在7个段的4个显示中显示我的结果,但它是如何使用前3个显示器显示频率和最后一个显示的真正大数字 我有零的数量,但它一直显示我超过非静态循环限制,这是我的代码。 conteo:process(salida,hdec,huni,muni,mdec)变量nciclos:整数范围0到100000000;开始 if(salida'EVENT AND salida ='1')然后 if(frecuencia_m'EVENT AND frecuencia_m ='1')那么---每秒我都会开始计算输入信号中的cicle数nciclos:= nciclos + 1; 万一; 万一; -------------------如果我的频率大于或等于10 MHzif(nciclos> = 10000000)那么 while(nciclos> = 10000000)loopnciclos:= nciclos - 10000000; hdec end loop; - while(nciclos> = 1000000)loopnciclos:= nciclos - 1000000; huni end loop; - while(nciclos> = 100000)loop nciclos: = nciclos - 100000; mdec end loop; - muni nciclos:= 0; end if; ----------------- fin del ciclo para ver es mayor a 10 MHz |
|
|
|
只有小组成员才能发言,加入小组>>
2383 浏览 7 评论
2800 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2263 浏览 9 评论
3336 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2430 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
756浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
546浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
368浏览 1评论
1964浏览 0评论
683浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 04:51 , Processed in 1.250543 second(s), Total 87, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号