Nios系统的所有外设都是通过Avalon总线与Nios CPU相接的,Avalon总线是一种协议较为简单的片内总线,Nios通过Avalon总线与外界进行数据交换。
Avalon总线接口 可分为两类:Slave和Master。slave是一个从控接口,而master是一个主控接口。slave和master主要的区别是对于Avalon总线控制权的把握。master接口具有相接的Avalon总线控制权,而slave接口是被动的。常见的Avalon的传输结构有:Avalon总线从读(slave read),Avalon总线带一个延迟状态从读,Avalon总线从写(slave write),Avalon总线带一个延迟状态从写。
● 所有外设的接口与Avalon总线时钟同步,不需要复杂的握手/应答机制。这样就简化了Avalon总 线的时序行为,而且便于集成高速外设。Avalon总线以及整个系统的性能可以采用标准的同步时序分析技术来评估。
● 所有的信号都是高电平或低电平有效,便于信号在总线中高速传输。在Avalon总线中,由数据选择器(而不是三态缓冲器)决定哪个信号驱动哪个外设。因此外设即使在未被选中时也不需要将输出置为高阻态。
● 为了方便外设的设计,地址、数据和控制信号使用分离的、专用的端口。外设不需要识别地址总线周期和数据总线周期,也不需要在未被选中时使输出无效。分离的地址、数据和控制通道还简化了与片上用户自定义逻辑的连接 。