新闻中心

EEPW首页 > EDA/PCB > 设计应用 > FSL总线IP核及其在MicoBlaze系统中的应用

FSL总线IP核及其在MicoBlaze系统中的应用

作者:时间:2008-06-02来源:单片机及嵌入式系统应用收藏

  2.2 总线的写操作时序

本文引用地址:http://www.eepw.com.cn/article/83481.htm

  对总线的写操作是由_M_Write信号控制 的。图3是FSL总线的写操作时序。FSL主设备在第一个时钟上升沿检查到 FSL_M_Full信号未置高,就允许主设备将FSL_M_Write置高,并将FSL_M_Data和FSL_M_Control推上总线,在下一个时钟周期这些数据就被总线读取并送入FIFO了。图中的Write2和Write3是一组“背靠背”的连续写操作。在Write3时,FIFO满使得 FSL_M_Full信号被置高,迫使主设备取消自己的FSL_M_Write信号,直到一次读操作将FSL_M_Full置低后,才可以发起另一次写操作。因此,图中暗示着在Write4处也发生了一次从设备的读操作,否则FSL_M_Full将再次置高。

       

  2.3 FSL总线读操作时序

  对FSL总线的读操作是由FSL_S_Read 信号控制的,图4是FSL从设备的3次读操作时序。当FSL总线上存在有效数据(FSL_S_Exists=‘1’),FSL_M_Data上的数据和 FSL_M_Control上的控制位就立即可以被FSL从设备读取。一旦从设备完成读操作,FSL_S_Read信号必须置高一个时钟周期,以确认从设备成功完成了一次读操作。在读操作发生后的时钟上升沿(图中Read2处),FSL_M_Data和FSL_M_Control会被更新为新数据,同时 FSL_S_Exists和FSL_M_Full信号也会被更新。同样,这里暗示着在Readl和Read2之间发生了两次主设备的写操作。

        

  3 FSL总线用法

  3.1 使用FSL总线的设备间通信
  
  目前Xilinx提供的FSL总线的版本是FSL_V20。两个设备要使用FSL进行数据传输,就必须分别作为主设备或从设备连接到FSL核上。如果需要进行双向的传输,只要两个设备分别作为主从设备,使用两个FSL核连接即可。
  
  无论是作为主设备或是从设备,都需要通过在设备的微处理器外设描述文件(MPD)中进行相应的定义,以实现所需类型的FSL接口。下面这段代码就是一个分别定义了FSL主设备接口FSL_OUT和从设备接口FSL_IN的MPD文件:
  
  BEGIN my_fsl_peripheral
  OPTl0N IPTYPE="PERIPHERAL"
  OPTl0N IMP_NETLIST=TRUE
  BUS_INTERFACE BUS="FSL"_IN,BUS_STD=FSL,BUS TYPE="SLAVE"
  BUS_INTERFACE BUS="FSL"_OUT,BUS_STD=FSL,BUS_TYPE=MASTER
  ##Ports
  PORT CLK=””,DIR=IN,SIGIS=CLK
  PORT RESET=””。DIR=IN
  PORT FSL_S_READ=FSL_S_Read,DIR=out,BUS=FSL_IN
  PORT FSL_S_DATA=FSL_S_Data,DIR=in,VEC=[o:31],BUS=FSL_IN
  PORT FSL_S_CONTROL=FSL_S_Control,DIR=in, BUS="FSL"_IN
  PORT FSL_s_EXISTS=FSL_S_Exists,DIR=in,BUS=FSL_IN
  PORT FSL_M_WRITE=FSL_M_Write,DIR=out,BUS=FSL_OUT
  PORT FSL_M_DATA=FSL_M_Data,DIR=out,VEC=[o:31],BUS=FSL_OUT
  PORT FSL_M_CONTROL=FSL_M_Control,DIR=out, BUS="FSL"_OUT
  PORT FSL_M_FULL=FSL_M_Full,DIR=in,BUS=FSL_OUT
  
  3.2 通过FSL与MicroBlaze通信

  MicroBlaze软核的FSL总线接口支持最多8对FSL连接,具体实现多少接口由系统硬件描述文件(MHS)中的参数C_FSL_LINKS决定。默认情况下该参数为0,表示不实现FSL接口。当需要使用FSL总线把MicroBlaze和中的一个或多个逻辑模块连接起来时,必须设置该参数的值为相应的模块数。该参数的取值范围是0~8。
  
  在MicroBlaze指令集中还有针对FSL总线操作的指令,它们分别是:
  
  ◆get,put——阻塞式数据读写FSL,控制信号被置为0;
  ◆nget,nput——非阻塞式数据读写FSL,控制信号被置为0;
  ◆cget,cput——阻塞式控制位读写FSL,控制信号被置为1;
  ◆ncget,ncput——非阻塞式控制位读写FSL, 控制信号被置为1。



评论


相关推荐

技术专区

关闭