原来是使用UART啊。你连什么时候需要收数据,什么时候需要发数据都没弄明白,呵呵。 你的子模块 uart_rec和uart_send模块我不知道具体的实现,只能告诉你: 第一,模块实例化以后,相当于一个实际的电路,是物理上存在的实体,并非函数。所以,不存在always调用这一说。如果你的子模块设计得当,那么,只要输入的信号满足你的条件,模块就有相应输出; 第二,你要看子模块的相关文档,如果是自己写的,要搞清楚UART时序; 第三,不要把接收寄存器(data)和发送寄存器用同一个,而且,17位的寄存器有点怪; 第四,你可以在代码里用always来完成判断什么时候该去从模块中读取数据(或者写入),什么时候复位等等。always后面的条件,可能是9个时钟(看你的UART设置),又或者是data被赋值或清空,这个要看子模块如何设计的; 第五,网络上有verilog或者VHDL实现UART的代码,google一下很容易找到,可以用来做参考,学习的效果应该比在这里问问题要强一点,也要连续一些。 |
|