1.seq 如果是burst的第一笔传输,为nonseq
burst16:第一笔传输为nonseq,后面接着15个seq
2.idle:假设master被bus选中了,给grant,即使master没有发requset,bus也可能会把grant给master,之后master就占有了总线,没法request也没法传数;但是收到grant,master就要驱动其信号,这时需要把htrans定义成idle,
没有master发req,bus 把grant 给default master,其trans为idle;
3.busy:master发了burst8,传了五个数,master没有数了,这时候master发busy,把后面的三个传输先hold一下,等到有数了再发seq操作,再把后面的三个数传完;
slave靠hready来handshake拖住总线,master靠发busy把bus的传输周期拖长;
master没数了发busy;slave不能接收数了拉低hready
burst和trans的关系:
一个burst的第一笔传输永远是sequential,一个burst后面的传输如果有数据传输永远是seq。
发singel,trans状态只能是nonseqential
seq和noseq之间可以插入busy
如果是不定长传输,
第一笔 noseq,后面是seq ,中间可以插入busy