位置:51电子网 » 技术资料 » 集成电路

Coo1Runner-Ⅱ器件实现SRAM控制器

发布时间:2008/9/19 0:00:00 访问次数:759

  dma传输时,16位的sram用来存储来自cpu/ide的数据。sram分为两个块,分别是buffer1(0x00~0xff)和buffer2(0x100~oxlff)。
  如图所示为sram控制器状态机,读写sram都是由此状态机完成的。



  如图 sram控制器状态机
  dma访问sram的优先级高于cpu。当dma状态机正在访问sram时,如果发生cpu请求sram访问,连接到cpu的ready信号将一直保持低电平,等待dma完成;当dma访问sram时,ready信号有效,告诉cpu可以操作。每个状态描述如下。
  (1)idle
  没有读/写操作时,sram状态机默认在空闲状态。在此状态下,读/写使能信号及片选信号都将处于无效状态,并且用于控制sram读/写周期访问时间的计数器被复位为0。
  (2)read
  如果cpu/dma有读请求,状态机进入read状态。在此状态下,计数器在每个时钟上升沿加1。 sram读使能信号、片选信号有效及地址线在读周期有效。当计数值为5时,从sram中读出的数据被锁存,状态机再次进入idle状态。
  (3)write
  如果cpu/dma有写请求,状态机进入write状态。在此状态下,计数器在每个时钟上升沿加1。sram读使能信号及片选信号有效,将要被写入到sram的数据被送到sram数据总线。一旦计数器计数值为5,状态机再次进入idle状态,写操作完成。
  (4)pio状态机和dma状态机
  pio状态机和dma状态机控制cpu与ide间的数据传输,如图所示为pio状态机。


  如图 pio状态机
  pio模式通过操作寄存器块实现对ide的读/写,一个循环周期为614 ns,共有8个状态,各状态描述如下。
  ● idle:复位时状态机进入空闲状态,此时diow_n/dior_n为高电平。如果cpu发
  送读/写命令给命令寄存器,状态机将会转入setup_start状态。
  ●setup_start:在此状态下,count计数器装入初值0x8,以确定地址与dior_n/diow_n之间建立时间关系。dior_n/diow_n保持高电平,此状态持续一个时钟周期。
  ● setup:此状态一直持续到地址与dior_n/diow n之间建立时间关系满足(计数器值
  为0)。每个时钟下降沿计数值减1,一旦计数器值为0,状态机转入pt凡se start状态。
  ● pulse_start:在此状态下,计数器装入初值0xld,以确定dior_n/diow_n脉冲宽
  度(297 ns)。如果命令寄存器中写命令位被置位,则diow_n有效;如果命令寄存器中读命令位被置位,则dior_n有效,此状态持续一个时钟周期后进入pulse状态。
  ●pulse状态:此状态一直持续到dior_n/diow_n宽度满足(计数器值为0)。在此状态下,每个时钟下降沿计数器减1,一旦计数器值为0,状态转入hold_start状态。并且如果是写,则cpu数据被送到de数据总线;如果是读,当dior_n变高,来自ide总线的数据被锁存到pio读/写数据寄存器。
  ●hold_start:在此状态下,计数器装入0x15,以确定dior_n/diow_n与地址总线之间的保持时间关系(144 ns),并且dior_n和diow_n驱动为高电平。此状态持续一个时钟周期,之后转入hold状态。
  ●hold:hold状态一直持续到dior_n/diow n与地址总线之间的保持时间满足(计数器值为0)。在此状态下,每个时钟下降沿计数器减1。dior_n和diow_n保持高电平。一旦计数器值为0,则转入end状态。
  ●end:在此状态下,dior n和diow_n保持高电平,自动转入idle状态。
  如图所示为dma状态机。



  如图 dma状态机
  dma模式有个dma时序模型,它随用户的不同参数配置而具有不同时序性能。dma状态机通过管理控制状态寄存器块和sram控制器来执行对ide的读/写操作,有3种操作模式,即模式0、模式1和模式2。这个状态机共有11种状态,分别描述如下。
  ● idle:复位时,状态机进入idle状态。在此状态下,dior n、diow n和dmack n信号保持为高。此时如果dmarq有效,并且dma模式使能,状态机会检测命令寄存器的读/写命令是否有效。如果是写命令位为1并且sram状态位为1,则读使能被发送到sram控制器,从sram读出数据写入到ide。一旦数据有效,sram状
  态机转入setup_start状态;如果读命令位为1,并且sram状态位为0,则状态机转入setup_start状态。
  ● setup_start:在此状态下,count计数器装入初值(模式不同,则初值不同),以确定dmack n与dior n/diow_n之间的建立时间关系,并且dmack n被置为高。如果写命令位和sram状态位均为1,那么状态机会产生一个读使能给sram控制器。如果读地址为buffer1的最后一个地址,则sram状态寄存器的bit0被清零;如果读地址为buffer2最后一个地址,则sram状态寄存器的bit1被清零。setup_start状态持续一个时钟周期后

  dma传输时,16位的sram用来存储来自cpu/ide的数据。sram分为两个块,分别是buffer1(0x00~0xff)和buffer2(0x100~oxlff)。
  如图所示为sram控制器状态机,读写sram都是由此状态机完成的。



  如图 sram控制器状态机
  dma访问sram的优先级高于cpu。当dma状态机正在访问sram时,如果发生cpu请求sram访问,连接到cpu的ready信号将一直保持低电平,等待dma完成;当dma访问sram时,ready信号有效,告诉cpu可以操作。每个状态描述如下。
  (1)idle
  没有读/写操作时,sram状态机默认在空闲状态。在此状态下,读/写使能信号及片选信号都将处于无效状态,并且用于控制sram读/写周期访问时间的计数器被复位为0。
  (2)read
  如果cpu/dma有读请求,状态机进入read状态。在此状态下,计数器在每个时钟上升沿加1。 sram读使能信号、片选信号有效及地址线在读周期有效。当计数值为5时,从sram中读出的数据被锁存,状态机再次进入idle状态。
  (3)write
  如果cpu/dma有写请求,状态机进入write状态。在此状态下,计数器在每个时钟上升沿加1。sram读使能信号及片选信号有效,将要被写入到sram的数据被送到sram数据总线。一旦计数器计数值为5,状态机再次进入idle状态,写操作完成。
  (4)pio状态机和dma状态机
  pio状态机和dma状态机控制cpu与ide间的数据传输,如图所示为pio状态机。


  如图 pio状态机
  pio模式通过操作寄存器块实现对ide的读/写,一个循环周期为614 ns,共有8个状态,各状态描述如下。
  ● idle:复位时状态机进入空闲状态,此时diow_n/dior_n为高电平。如果cpu发
  送读/写命令给命令寄存器,状态机将会转入setup_start状态。
  ●setup_start:在此状态下,count计数器装入初值0x8,以确定地址与dior_n/diow_n之间建立时间关系。dior_n/diow_n保持高电平,此状态持续一个时钟周期。
  ● setup:此状态一直持续到地址与dior_n/diow n之间建立时间关系满足(计数器值
  为0)。每个时钟下降沿计数值减1,一旦计数器值为0,状态机转入pt凡se start状态。
  ● pulse_start:在此状态下,计数器装入初值0xld,以确定dior_n/diow_n脉冲宽
  度(297 ns)。如果命令寄存器中写命令位被置位,则diow_n有效;如果命令寄存器中读命令位被置位,则dior_n有效,此状态持续一个时钟周期后进入pulse状态。
  ●pulse状态:此状态一直持续到dior_n/diow_n宽度满足(计数器值为0)。在此状态下,每个时钟下降沿计数器减1,一旦计数器值为0,状态转入hold_start状态。并且如果是写,则cpu数据被送到de数据总线;如果是读,当dior_n变高,来自ide总线的数据被锁存到pio读/写数据寄存器。
  ●hold_start:在此状态下,计数器装入0x15,以确定dior_n/diow_n与地址总线之间的保持时间关系(144 ns),并且dior_n和diow_n驱动为高电平。此状态持续一个时钟周期,之后转入hold状态。
  ●hold:hold状态一直持续到dior_n/diow n与地址总线之间的保持时间满足(计数器值为0)。在此状态下,每个时钟下降沿计数器减1。dior_n和diow_n保持高电平。一旦计数器值为0,则转入end状态。
  ●end:在此状态下,dior n和diow_n保持高电平,自动转入idle状态。
  如图所示为dma状态机。



  如图 dma状态机
  dma模式有个dma时序模型,它随用户的不同参数配置而具有不同时序性能。dma状态机通过管理控制状态寄存器块和sram控制器来执行对ide的读/写操作,有3种操作模式,即模式0、模式1和模式2。这个状态机共有11种状态,分别描述如下。
  ● idle:复位时,状态机进入idle状态。在此状态下,dior n、diow n和dmack n信号保持为高。此时如果dmarq有效,并且dma模式使能,状态机会检测命令寄存器的读/写命令是否有效。如果是写命令位为1并且sram状态位为1,则读使能被发送到sram控制器,从sram读出数据写入到ide。一旦数据有效,sram状
  态机转入setup_start状态;如果读命令位为1,并且sram状态位为0,则状态机转入setup_start状态。
  ● setup_start:在此状态下,count计数器装入初值(模式不同,则初值不同),以确定dmack n与dior n/diow_n之间的建立时间关系,并且dmack n被置为高。如果写命令位和sram状态位均为1,那么状态机会产生一个读使能给sram控制器。如果读地址为buffer1的最后一个地址,则sram状态寄存器的bit0被清零;如果读地址为buffer2最后一个地址,则sram状态寄存器的bit1被清零。setup_start状态持续一个时钟周期后
相关IC型号

Warning: Undefined variable $stockkeys in G:\website_51dzw\www.51dzw.com\code\tech\view.php on line 152

热门点击

 

推荐技术资料

DS2202型示波器试用
    说起数字示波器,普源算是国内的老牌子了,FQP8N60... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式