小白在使用ISE编写verilog代码综合时犯得错误及我自己的解决办法

一:错误原因,顶层信号声明类别错误

错误前

更改后

二:综合时警告

更改前:

错误原因:调用子模块时 输出端口只能用wire类型变量进行映射 这是verilog语法规定的 

tx_done在uart_tx模块中初始化时的赋值是0,send_en需要在初始化后置为1。而我这样写,初始化后send_en仍然是0,逻辑出现问题。需要将tx_done取反后再赋值。这样逻辑就正确了。
再次综合后就没有这个警告了

 三:this signal is connected to multiple drivers错误 

一个寄存器端口只能在一个块中被赋值比如在always和initial中,如果是在两个块中都被赋值了,这样就会冲突。

原文地址:https://www.cnblogs.com/danielwc/p/9018297.html