Coo1Runner-Ⅱ器件实现双向多路选择器

时间:2008-09-19

  该范例的设计与实现如下。

  (1)CPLD设计

  CPLD设计实际上是一个双向多路选择器,主机通过“Select”信号选择SD卡。一旦选中,CPLD会自动检测数据流的方向并建立通信。不必用专门的引脚来指定传输方向,用非常方便,如图1所示。

双向多路选择器

  如图1 双向多路选择器

  主机可以访问其中任何一块SD卡,而不会影响其他卡。如果主机和SD卡都没有驱动总线,则总线为高阻状态。

  如图2所示为用于实现双卡的多路选择器,在初始或mLE状态,主机Host和SD卡均

  处于弱上拉状态。因此如2图所示电路设置为开路输出,外部上拉电阻起作用。上电时,寄存器A和B初始化为“0”。当“Select”为“0”,SDI被选中;当“Select”为“1”,SD2被选中。为了方便,以下讨论假定主机与SDI卡通信。

双卡的多路选择器

  如图2 双卡的多路选择器

  自动检测数据流方向的思路为本设计的重点,Host或SDI驱动总线为低,将会启动数据传输。例如,如果Host要发送数据给SDI,当Host驱动A端为低电平时,BI门输出高电平。三态Buffer使能端有效,也输出低电平到SDI端。同时A_REG的Clock端会出现一个上升沿,从而A_REG的Q端输出高电平。此高电平禁止了三态BufferA和B_REG端出现Clock的有效沿。这样一来,使SDI端跟踪了Host端的变化。

  相反,如果Host端驱动为高电平,门BI输出低电平,从而强制B输出高电平(通过外部上拉电阻)。一旦A端和B端都输出高电平,A_REG和B_REG均复位为低电平。

  以上过程周而复始地进行,如果数据传输方向是从SDI到Host,上述传输过程恰好相反。另外,Host与SD2之间的通信与Host与SDI之间的通信类似。不再赘述。

  (2)设计范例

  源代码及测试程序可从Xilinx网站,如图3所示为仿真波形。

ModelSim仿真波形

  如图3 ModelSim仿真波形

  仿真时,首先是SEL为低电平,Host发数据给SDI。SDI收到数据后发给Host,图中虚线表示高阻状态。之后SEL为高电平,Host与SD2之间通信。如表所示为设计实现后的资源使用情况。

  如表 设计实现后的资源使用情况

设计实现后的资源使用情况


  
上一篇:ADS5546集成电路
下一篇:脉冲和转化测量控件的运行操作

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料