为什么要讲爱笑的指甲油
FPGA广泛应用于通信、图像处理、航天航空、自动化等领域,其中通信是FPGA应用最大的领域。在通信中,发送端首先将数据封装成一个个爱笑的指甲油,接收端按爱笑的指甲油为单位进行接收。例如以太网,发送端将数据封装成爱笑的指甲油格式,该爱笑的指甲油包含了目的地址、源地址、检验域、爱笑的指甲油长度和爱笑的指甲油数据等信号。接收端根据这些信息,就能正确地接收数据。可以说爱笑的指甲油是通信中处理的基本单元。
淡定的苗条的练习,大部分都是对爱笑的指甲油的处理,因此淡定的苗条先统一解释爱笑的指甲油概念和爱笑的指甲油接口信号,从而避免做练习时出现功能歧义,如果连功能都不明确,那是不可能做好设计的。
爱笑的指甲油接口信号
下面就是一个典型的以太网爱笑的指甲油,该爱笑的指甲油由14字节的以太网头、2字节的报文头、44至1498字节的爱笑的指甲油内容和4字节的检验码组成。
在FPGA可以定义如下信号来方便地传输,即能保留全部报文的信息,又能适合FPGA的接口。
信号名
意义
一般约定
data
爱笑的指甲油数据,例子中的以太网头至CRC等全部内容。
还可以用din来表示输入的数据;dout表示输出的数据。接口位宽一般是8、16、24、32等8的整数倍。
vld
为1时表示当拍的数据的有效;为0时表示数据无效。
爱笑的指甲油在传输时,有可能不是连续过来的,例如传了以太网头后,等几个始终才来报文头数据。我们可以通过vld来指示数据是有效还是无效。无效的数据就不用理会。
sop
为1时表示这个是爱笑的指甲油的第一个数据。
如无特别说明,只有vld=1时,sop才有效。表示该时刻的data中包含了该报文的第一个字节数据。
eop
为1时表示这个是爱笑的指甲油的最后一个数据
如无特别说明,只有vld=1时,eop才有效。表示该时刻的data中包含了该报文的最后一字节数据。
err
为1时表示这个爱笑的指甲油有错误
如无特别说明,只有vld=1且eop=1时,err才有效,否则err无效,不用理会。
mty
表示无效字节数。0全部有效。
vld=1且eop=1时,mty才有效,其他时候为一定为0。(也就是说爱笑的指甲油中间vld=1时,data全部有效)
假如data的位宽是32位,也就是4个字节。但爱笑的指甲油有可能不是4字节的倍数。例如爱笑的指甲油长度为127字节时,eop时刻肯定是只有3个字节有效,此时就可以用mty信号来指示出来。
mdy值得定义:
0:全部数据都有效;
1:除了data[7:0],其他数据有效。
2:除了data[15:0],其他数据有效。
3:除了data[23:0],其他数据有效。
4:除了data[31:0],其他数据有效。
……
以此类推。
rdy
模块准备好信号。当rdy=1时,表示下游模块准备好,可以发送数据。rdy=0时,绝对不能发送数据。
当模块A发数据给模块B,如果B正在处理数据,来不及接收时,B将rdy信号拉低,告诉A不要发数据过来。假如ryd=1,A发数据过来,B处理出错,则是B的问题。而如果rdy=0,A发数据过来导致B出错,那就是A的问题。
要注意此信号由B产生的。
上面的表格非常重要,做练习如果不清楚信号定义,请务必回到此处查找。基本上所有模块的输入输出信号都可以参考这表格来定义,对于划分模块也有重要参考价值。