在SpinalHDL中,Stream的抽象可谓诸多设计的核心,今天,一同来看下不带数据的Stream——Event。 》不带数据的Stream 在逻辑设计里,握手信号处处可见,在SpinalHDL里,所有的握手信号都可以抽象为Stream接口:
这里的payload可以是任何的数据类型。但在某些场合下,我们可能并不需要payload,而只是单纯的想要一个握手信号。 在这种情况下,你可以使用SpinalHDL lib中所提供的Event:
Event对应一个payload为NoData的Stream信号,而NoData顾名思义,其实现为一个空的Bundle:
》Example 这里我们以Axi4-Lite写通道为例进行描述。自定义信号名称如下:
当我们将hpi转换为Axi4-Lite Write接口时,addr信号要送到aw通路,而data通路则要送到w通路。这里我们需要用到一个StreamFork组件,通过Event,我们可以很方便的描述该电路:
这里,我们通过Event及StreamFork3来完成cmd和alite4WriteOnly三路Stream握手信号的处理,实现电路更加的方便简洁。
原作者:玉骐
|