前几天看网上一个人说在仿经典基础程序按键消抖实验的时候0 error、0 warning,正好我也在仿这个实验,就想说看看我能不能也出现这样爽的结果,没想到最后出了6个warning,于是施展搜索大法,力争把几个warning消灭掉!
1.
Warning: An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. It's required that the timescale should be 1 ps when simulating a PLL design in a third party EDA tool.
这个大致是关于时间精度的,在网上查了下,将SETTING中精度设置由1ns改为了原本的1ps,警告消失,警告的大致意思是在EDA第三方仿真工具下仿真PLL设计,就要求时间精度为1ps,不明白为什么一定要这样,有待以后解决。
2.
Warning: Found pins functioning as undefined clocks and/or memory enables
Info: Assuming node CLK is an undefined clock
研究了半天,刚开始以为是没设定时钟管脚,还在纳闷明明所有PIN都设定了,后来看到网上说是没设定全局时钟,于是一系列设定后终于解决,并且明白了之前一直不理解的时钟频率问题,原来时钟频率是可以自行设定的,本来还以为只能testbench里假定呢,傻了~
下面是解决办法:
3.
Warning: The Reserve All Unused Pins setting has not been specified, and will default to 'As output driving ground'.
这个是比较诡异的警告,在网上搜了半天,没有确切的解决办法,这个信息大致的意思是未定义管脚设置接地,其实无关紧要,但是放在那不管很影响我的0warning记录,于是在setting里面找,后来发现在device里有个对话框device and pin options,打开后里面有个unused pins,把里面的选项由原来的接地改成三态,再仿真警告就没了,但奇怪的是,后来我又改了回来,再仿真,警告还是没有出现,不知何故。
4.
Warning: Expected ENABLE_CLOCK_LATENCY to be set to ON but is set to OFF
这个是说时钟延迟的一个设置应该设置为ON,网上都说没什么影响,貌似与时序仿真有关,不太清楚,设置在Classic Timing Analyzer中有个more setting,里面下拉菜单中就有ENABLE_CLOCK_LATENCY,设置为ON就OK。
5.
Warning (10238): Verilog Module Declaration warning at sw_debounce.v(5): ignored anonymous port(s) indicated by duplicate or dangling comma(s) in the port list for module "sw_debounce"
这个在网上死活没找到,最后只好自己解决,简单看了下,大致是端口定义那边的逗号出了问题,于是鼠标爬过去看,结果发现在定义端口的最后一个端口后面多了个逗号,真是马虎~
6.
Warning: Feature LogicLock is only available with a valid subscription license. Please purchase a software subscription to gain full access to this feature.
由于我用的版本是免费的,所以不支持逻辑锁定功能,不知道对程序有没有影响,消不下去。
郁闷~~~没有完成0warning,不过还好这个不是技术性问题,所以我也暂时忽略它吧!
一个晚上解决的,终于把键盘消抖程序完成了!