突发传输
Avalon接口支持突发传输。突发模式下,多个传输作为一个单元来处理,而不是每个数据单元作为一个独立的传输。突发传输最大化从端口的吞吐量,在从端口处理来自一个主端口的多个数据单元的时候可以达到最高的效率。
突发传输保证了主端口在突发传输的期间内对目标从端口的访问不会被打断。一旦一个主从端口对之间的突发传输开始,直到突发传输结束,Avalon交换架构不再允许任何其它的主端口访问该从端口。
Avalon主/从端口通过包含信号burstcount来支持突发传输。下面是主从端口的burstcount信号的特性:
Burstcount信号宽度必须是2~32。
在突发传输的开始,burstcount信号提供一个编码的值,指示当前的突发传输中包含有多少个连续的传输。
burstcount的最小值是1。
burstcount值为1的突发传输等同于一个单独的非突发的传输。
对于burstcount宽度为N的情况,最大突发长度为2N-1. 此时,burstcount的最高为为1,所有其它位是0。
Avalon突发传输不能保证主端口或从端口每个时钟周期进行一次传输。突发传输能够保证在突发传输期间主从端口对的仲裁是所定的。突发传输需要的时间是不确定的,取决于主从端口的外设逻辑。
限制
支持突发传输的端口面临如下的限制:
为了支持主端口的突发读传输,主端口必须支持流水线传输。由于流水线模式的主端口不允许使用三态属性,因此突发模式的主端口不能使用三态属性
为了支持从端口突发读传输,从端口必须支持:
可变的等待周期,即该端口必须包含waitrequest。因此,该端口不能使用建立和保持时间,这两个属性在使用可变等待周期的端口中是不允许的。
具有可变的延迟的流水线传输,即该端口必须包含readdatavalid信号。因此,从端口不能使用三态属性,三态属性在具有可变延迟的流水线端口中是不允许的。
主端口突发传输
对Avalon主端口来说,burstcount信号是输出信号。除了burstcount信号,突发传输还影响address、read、 readdata、eaddatavalid、write、writedata和byteenable信号的行为。
突发传输开始时,主端口在address上发出有效的地址,在burstcount发出突发传输的长度。每一次突发传输主端口只发出一个地址值,对于突发传输中所有传输的地址由Avalon交换架构自动地推断。
当主端口开始地址为A,burstcount值为B的突发传输,该主端口提交了从地址A开始的B个连续的传输。突发传输直到主端口传输了B个单元的数据才完成。在当前的突发传输完成之前,主端口不能终止该突发传输,或者给出一个新地址。
主端口突发写传输
主端口突发写传输的开始和主端口基本写传输是相似的。除了burstcount信号之外,主端口发出address、writedata、write和 byteenable(如果需要)信号。如果Avalon交换架构还没有准备好,它在下一个clk的上升沿之前发出waitrequest。最后,Avalon交换架构使waitrequest失效, 同时在下一个clk的上升沿捕获address和burstcount信号。Avalon交换架构还在这个clk的上升沿捕获writedata的第一个数据单元。主端口必须在突发传输期间保持address、byteenable和burstcount不变。
Address和burstcount信号规定了剩余的突发传输的行为。当主端口发起了burstcount值大于1的突发传输,须遵循一下的规则:
如果主端口指定了burstcount值为N,那么要完成突发传输,主端口必须在N个clk的上升沿发出write信号,并且提供新的writedata。仲裁端口对的仲裁被锁定直到主端口完成该突发传输。
主端口可以通过在clk的上升沿使write信号失效来延迟传输,这样能够阻止Avalon交换架构捕获当前时钟周期的writedata。
Avalon交换架构可以通过发出waitrequest来延迟传输,这样做强迫主端口在一个附件的时钟周期内保持writedata和write不变。
主端口必须在整个突发传输期间内置所有的byteenable信号线有效。.
一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!