一:错误原因,顶层信号声明类别错误
错误前
更改后
二:综合时警告
更改前:
错误原因:调用子模块时 输出端口只能用wire类型变量进行映射 这是verilog语法规定的
tx_done在uart_tx模块中初始化时的赋值是0,send_en需要在初始化后置为1。而我这样写,初始化后send_en仍然是0,逻辑出现问题。需要将tx_done取反后再赋值。这样逻辑就正确了。
再次综合后就没有这个警告了
三:this signal is connected to multiple drivers错误
一个寄存器端口只能在一个块中被赋值比如在always和initial中,如果是在两个块中都被赋值了,这样就会冲突。