2008年11月26日星期三

ncvlog: *E,DUPIDN (t.v,1795|25): identifier 'xx' previously declared [12.5(IEEE)]

这个ERROR明确指出该信号(xx)在前面已经定义了,那么解决办法当然是取消重复定义。但是若在前面没有找到该信号的显式定义(譬如,wire xx;),就要看该信号在前面是不是已经被使用了,譬如在例化别的模块时,用该信号作为连接信号。

解决办法在最先使用这个信号的地方显式定义该信号
引申: 在碰到这个ncvlog的ERROR时,先搜索,看前面是否有显式定义,若有则改之;若没有,则要考虑前面是否有用到这个信号的地方。

Tip
在verilog中,没有显示定义的变量,编译器会默认其类型为wire,相当于定义了该信号。当编译器解析到显式定义的地方时,就会认为是重复定义。

没有评论: