第1节 握手
握手
当输入是多线程的时候就需要了。
这是“全握手”。注意上升沿和下降沿的变换在两个方向都是重要的。
接收器通过置位RDY显示对接受数据准备好。
发送器设置数据有效,然后置位DAV接收器读取数据,然后清零RDY
发送器通过清零DAV确认

一个不是很详细论述的握手
这经常用于UART,它们处理它们不能控制的异步数据流
发送器稳定数据,而且置位DAV。
接收器读取数据,而且清零RDAV。
发送器重新确认数据,清零DAV。
典型的,发送器在发送新数
据前不等待/RDAV。这能用来检测“超限”错误。

我们可以用简单的有限状态机描述发送和接受动作。这是一个发送端的有限状态机:(全握手)

library ieee;
use ieee.std_logic_1164.all;
entity fullsend is
generic (size: integer := 4);
port (rdy, clk : in std_logic;
datin : in std_logic_vector(size-1 downto 0);
dav : out std_logic;
datout : out std_logic_vector(size - 1 downto 0));


