使用平台:xilinx vivado2019.2
在写完verilog 文件后编译,有时候会报多驱警告,通常是由于一个reg型数据在不同的always块中被赋值,解决方法就是把两个模块的赋值放在一个always模块中完成(但大多数情况是因为赋值粘贴忘记修改导致的多驱)
少数情况(这里以本人为例),在对wire型数据进行操作时也被告知多驱,并且删除了我写的一些逻辑(被编译器认为是未使用的),警告源是一个三态数据总线,在对wire三态数据进行赋值时是允许多驱的,改了很多遍,发现是由于将三态信号获取到本地时(就是读取三态信号时)使用的是asssign,由于assign并不会将数据寄存,导致编译器告警,所有有读取到三态总线信号的地方都改成always寄存后,警告消除,问题解决。