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

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

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

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

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

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

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

这个问题后来工程师更正我了,Robei 支持一个模块里有多个always,但reg 只能在一个always里赋值。一般如果出现了上述问题,大概率是你自己炸了。

  1. Constrain 命名
    管脚约束文件的管脚命名,是要求和开发板对应的,所以在配置IO的时候,名称一定是“A18”“”F3"这样的,如果写错了,Robei会有这样的错误声明。
    在这里插入图片描述
    这是我当时不小心把自己model模块的类型改了,结果编译的时候报的错误。

  2. 中途改文件类型导致的BUG
    之前不小心把本来要写代码的model模块给改了属性,变成了配置管脚约束的constrain 文件,然后当我发现这个问题并改正之后,在编译代码的时候,出现了问题。
    【FPGA】Robei EDA 常见问题解决(1)_第8张图片
    一个配置好IO的模块,并且编译过后,在Robei自动生成代码的区域,居然没有任何IO的定义,这个就很令人头疼了。这个问题我试了好几次,都是一样的结果,这个可能是一个小bug吧,不过并不影响实际的编程。
    **bug的触发条件:**在引脚约束文件中,对IO进行命名、连线操作,再将文件属性修改回模块(model)类型,之后正常编译。Robei 的IO自动生成代码可能会无法正常显示。
    解决办法: 重新新建一个文件就行了,舍弃掉原来的文件。

你可能感兴趣的:(Robei,FPGA)