完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
由于 PDIUSBD12 的 8 位数据线是双向总线,所以当进行读写操作的时候,应该注意避免双驱动。双驱动的意思就是在总线两边同时往总线上加输出信号,这样总线数据就处于一种不定态(用 X 表示),并且还容易损坏器件。 例如,没有处理好双驱动的仿真波形就会如图 6-37 所示,这种情况下无法得到正确的数据的。 信号的 4 种基本状态是高电平(1)、低电平(0)、不定态(X)和高阻态(Z),当一个总线上同时加有两个信号时,组合起来的结果如表 6-35 所示。 可见,当一个总线上同时有两个驱动的时候,很有可能产生不定态 X,但是如果其中一个信号为高阻态 Z 的话,则是一个确定的状态(即另一个信号的状态)。所以,避免双驱动的基本思想就是根据目前的读写状态关闭某一个驱动源,也就是说将其另一个驱动源输出设置为高阻态。由于读写操作是由各自的控制信号(WR_N、RD_N)控制的,所以可以将这两个信号作为互斥关系的信号来控制总线数据的信号源。例如,当 RD_N 为低时,要从 PDIUSBD12 读取数据,就应该关闭 FPGA 对总线的输出,即将 FPGA 的总线输出信号变为高阻态 Z。反过来也一样,当 WR_N 为低时,要向 PDIUSBD12 发送数据,此时 PDIUSBD12 也会自动关闭它在总线上的输出。以上思想可用公式表示为: 输入/输出切换模块的示意图如图 6-38 所示。其中左边的总线表示连接到 PDIUSBD12 的总线,右边的输入、输出总线是在 FPGA 内部的总线信号,表示在 FPGA 内部将总线的输入和输出区分开来;RD_N 和 WR_N 信号分别用于读、写控制。 输入/输出切换模块的实现代码如下:
输入/输出切换模块的源代码请参考源文件 IOSwitch.vhd。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
2883 浏览 3 评论
27666 浏览 2 评论
3458 浏览 2 评论
3975 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2319 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 00:40 , Processed in 0.661967 second(s), Total 57, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号