微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > QUARTUS两个警告的意思——求解释

QUARTUS两个警告的意思——求解释

时间:10-02 整理:3721RD 点击:
在编译自己写的一个程序的时候发现有两个警告无论如何都无法解决:
1.Warning (10236): Verilog HDL Implicit Net warning at xx.v(166): created implicit net for "MEM_HAIOS"
2.Warning (10227): Verilog HDL Port Declaration warning at xx.v(106): data type declaration for "CPU_data" declares packed dimensions but the port declaration declaration does not
请问这两个warning一般是在什么情况下会出现?如何解决?如果不解决的话 会产生什么样子的影响?
在网上查了很多资料都没有关于这方面的解释。求解脱~

能不能把源文件贴出来看一下?便于大家分析啊

1. 检查一下这个net“MEM_HAIOS”,应该是没有声明吧,或者是没有驱动。
2. CPU_data这个信号声明和端口声明不一致。
小编,verilog的基本语法你要好好学习了。



    你好,这个程序源代码很长,可能没有办法全部贴出来,我只能大致描述一下了:
关于MAIN_HAIOS,这个变量,在底层文件中定义的是wire型的,程序如下:
assign   MEM_HAIOS=((~AEN)&(rst_n)&(addr==20'h00220))?1'b0:1'b1;
这个功能块在顶层文件中被调用,调用的时候也是wire型。功能块的作用是地址译码,奇怪的是凡是被译码的都被提示有这个类似的错误。



    关于MAIN_HAIOS这个变量是否有驱动我在回答上面朋友的帖子的时候已经说明了,我想肯定不会是一些简单的变量定义不相符合的问题吧,如果是这样的问题,提示应该是直接说变量的定义不对。
    关于CPU_data这个变量, 我在顶层文件中的端口声明是 inout,变量定义是wire ;在底层的5个模块中被调用,4个输入,1个输出。
    大家在编译的时候没有出现过类似的警告吗?



    我知道警告的问题严重性可能不高,但是我很想搞明白到底是为什么会出现这样的警告,奇怪的是在网上都查不到类似的消息。

呵呵,第二个问题搞明白了,确实是端口声明和变量定义的问题,原来端口的声明中的位宽必须和变量定义中的位宽相同,我原来以为位宽只要在变量定义中说明就可以了。
2楼说的很对,我是该好好看看verilog的语法了。
在第1个问题我还没有搞懂。继续求。



   你的回复:" 关于MAIN_HAIOS,这个变量,在底层文件中定义的是wire型的,程序如下"
   是不是在顶层调用的时候没有写wire?什么地方漏掉了
   wire MAIN_HAIOS;
   这句话吧,不是底层就是顶层。

1. 你是调用instance了吧?忘了声明wire了。
2. 数据位数declare错了吧?例如 output [31:0] Go;  reg [30:0] Go就会产生这样的警告。

instance是什么意思?

学习了

关于这个问题,我也遇到了,不过增加:wire “被警告的信号”;之后警告就没了
呵呵  估计跟Verilog的两个标准有关


第一个问题应该是MEM_HAIOS wire没有定义,也许你前面定义的时候单词拼写错了,所以没发现,这样的问题一不小心就会犯,呵呵

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top