完成下图所示图形:

逻辑功能描述
control 模块接收到tx_done信号之后给send模块发出en使能信号和8位data。
send 模块当en使能为高的时候,开始将输入的数据一位一位的传输给tx(output), 当八位数据输出完成之后tx_done=1;
tx_done之后延时5 us
写一个top level来调用control 和send 模块
注意
如果control不发en信号,那么send 模块就不会工作,
如果send 模块不工作,那么tx_done一直为0,
如果tx_done 一直为0, 那么control 模块也不会工作
==> 所以在初始的时候,control模块要先发出en使能信号给send 模块,使send 模块先工作。
在control 模块里面写一个状态机

- S0 为初始状态,这个时候给send 模块发送使能信号en, 进入S1 wait 状态,
- 然后等send模块的tx_done之后,进入延时模块S2,同时将延时模块的cnt_en使能置为1,延时模块开始计数,将send 模块的使能,en拉低。
- 延时模块结束(delay_done=1),回到初始状态,将cnt_en使能拉低

本文介绍如何利用VHDL设计一个控制模块,该模块在接收到tx_done信号后向send模块发送8位data的en使能信号。send模块在en使能高时逐位传输数据至tx,完成后设置tx_done。控制模块内包含一个状态机,确保在初始时发送en信号以启动send模块。仿真文件和完整代码可供下载。
最低0.47元/天 解锁文章
28

被折叠的 条评论
为什么被折叠?



