当前位置:   article > 正文

由一个小小错误导致FPGA上各种奇怪问题_fpga程序跑飞原因

fpga程序跑飞原因

问题

经过iverilog验证过设计,生成bitstream下载到FPGA开发板上后出现了各种各样奇怪的问题:

  1. assign 的值并不完全相等。

在这里插入图片描述
2. 存入dmem的值,在取出来的时候就不相等了。将0x4000e9c(函数返回地址)存入地址0x3f3c,在几个时钟周期后取出时,则变成了0x4000e90,这错误的返回地址就导致了程序会跑飞。
在这里插入图片描述

原因

最初以为这些问题是由于设计上的缺陷,或者由于使用了错误的变量类型和verilog语法,经过排查问题依旧。

最后无意发现了如下这条warning信息:
在这里插入图片描述在这里插入图片描述
create_clock -name sysclk-period 20 [get_ports clk]

此时真相大白,原来是因为在定义clock时sysclk和-period 20中间少了一个空格…,修改后则一切表现正常。

create_clock -name sysclk -period 20 [get_ports clk]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/947971
推荐阅读
相关标签
  

闽ICP备14008679号