Verilog再接触 问题集

问题1

出现了Error: Can't compile duplicate declarations of entity "xxx" into library "work"。“xxx”是我的一个模块文件名,这个文件名同时有一个.bdf文件,还有一个.v文件。

       其中.bdf文件是我为了下板子新建的文件,里面是.v文件生成的模块,存盘时我没有改默认文件名,所以出现和.v文件重名的问题。加.bdf文件前编译没有任何问题,但是加.bdf文件后就出现了错误。开始不了解为什么,在网上查阅后天发现可能是有重名文件,虽然后缀不同,但还是不可以的,于是把.bdf改名,编译通过!

       证实了错误原因就是重名文件做怪。

       注意:同一个文件名只能代表一个模块,即 *.v文件和 *.bdf文件等不同扩展名的文件只能代表同一个模块,如果建立了其中一个改扩展名的文件就不能建立统一名称的其他扩展名的文件

感谢 “金瑞”的博客给出的原因。

 

问题2:FPGA设置引脚的问题

      我开始只用1个led,设置为69脚·仿真后改为4个led,即led[3:0],设置引脚时不能设置为69了,提示这个

意思是这个引脚已经被指定了,这时设置引脚的列表中已经没有led了,怎么解除这个指定呢?

解决办法:Assigment->assigment editor中删除led的引脚即可,再到Pins中重新分配。

感谢群中“大水牛”同学

 

问题3:Error (10028): Can't resolve multiple constant drivers for net "" at

原因两个进程里都有同一个条件判断的话,会产生并行信号冲突的问题。

        同一个信号不允许在多个进程中赋值,否则则为多驱动。

        进程的并行性决定了多进程不同能对同一个对象进行赋值

问题4:unsized constants are not allowed in concatenations

原因:拼接语句a_fout = {0,exp_a_out,temp_a_out,12'd0};其中0应标注位宽,编辑器不会默认为1位,应为

a_fout = {1'b0,exp_a_out,temp_a_out,12'd0};

问题5:Error (10267): XXXX,cannot connect instance ports both by order and by name

原因:模块例化时有接口前没有加点“.”。

原文地址:https://www.cnblogs.com/cheetah/p/2252724.html