HDL class 2(利用case语句,并调用子模块)

本文介绍如何利用VHDL设计一个控制模块,该模块在接收到tx_done信号后向send模块发送8位data的en使能信号。send模块在en使能高时逐位传输数据至tx,完成后设置tx_done。控制模块内包含一个状态机,确保在初始时发送en信号以启动send模块。仿真文件和完整代码可供下载。
摘要由CSDN通过智能技术生成

完成下图所示图形:

在这里插入图片描述

逻辑功能描述

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 模块里面写一个状态机

在这里插入图片描述

  1. S0 为初始状态,这个时候给send 模块发送使能信号en, 进入S1 wait 状态,
  2. 然后等send模块的tx_done之后,进入延时模块S2,同时将延时模块的cnt_en使能置为1,延时模块开始计数,将
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值