【FPGA】Robei EDA 常见问题解决(1)

#今天也是咸鱼的一天~(换口头禅了)

收集了一下,来自Robei 杯比赛QQ群里的提问,还有我自己用这个EDA的时候,遇到的问题。
(学渣留下了悲伤的泪水)

  1. 中文路径带来的问题
    这是一个众所周知但又经常容易出错的地方。目前我遇到的所有FPGA的软件,Quartus,Vivado,TD(上海安路的开发环境),还有Robei EDA,都不能使用中文作为路径名称。TD可以在中文路径下打开,但是不能编译,会导致软件崩溃。Robei EDA 文件路径含中文,就会出现下面这样的情况。
    在这里插入图片描述

  2. 不用在Robei 的Code界面写module模块
    这是一个我对犯这个错误的人很迷惑的问题。
    在这里插入图片描述
    在这里插入图片描述
    在Robei EDA里,module的IO定义,是直接在图片上进行连接的时候,软件自己生成的。不需要画好模块之后,重新在Code界面再写一遍,这样子在编译的时候,有两份module,不报错才怪呢。
    在它的EDA里,只用在Code的里写代码设计部分就行了。用codeview看到的一份正常代码是这个样子的。这里会有标明哪些代码是Robei自己生成,哪些是通过Robei编写的。
    在这里插入图片描述

  3. 激励文件(testbech)建立后找不到模块
    这个问题,是有人问了我我才知道的。当我们创建了Robei里的文件时,这个文件其实并没有在电脑本地硬盘里保存,只有我们确定要保存后,才会在本地路径里创建文件。激励文件在保存的时候,如果没有和之前编写的模块(model)文件放在一个路径下的话,testbech文件界面里的Current就不会有之前的模块。
    就像这个样子:
    在这里插入图片描述
    把它的路径更改过之后,就会出现自己编程的模块。
    在这里插入图片描述

  4. 一个模块只支持一个的always
    这个情况是我怀疑了好久,也验证了好几次,虽然没有问Robei的工程师,但基本也就是那样了。
    无论是组合还是时序,一个model的块里,只能有一个always,多了会报错。Robei 的库里头提供的模块是封装过的,所以在界面上能有多个always。一个块一个always应该是Robei的规范,是必须遵守的。
    在这里插入图片描述
    只能写一个always,写多了的报错是这样的。
    在这里插入图片描述
    不仅是always,包括逻辑运算,像 y= a&b 这种,也得单独写一个模块。不然会出现“连续赋值中的语法错误”。因此在代码编写里,上位模块的输出管脚,如果是reg类型的,那么下位的接收模块就要写成wire类型的,但是数据位不变(Datasize 是一样的)

  5. 未完待续……待我找找错误

发布了21 篇原创文章 · 获赞 26 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Ninquelote/article/details/105655085