[求助] CPLD的双向端口问题!毕设啊求助!

fdw9   2010-6-10 20:57 楼主
现在PCI数据线与CPLD相连,有一个功能是测速,首先用LAD0发一个控制信号,然后如入LAD[15..0]的数据。
由于LAD0需要双向,因此将LAD[15..0]都设为Bir(在顶层框图中)但是发现通过LAD0根本写入不了命令,不知为什么?
现在只能LAD0只作输入 其余15根只作输出。但所有模块综合时肯定会用到双向端口,请问应该怎么设置啊?为什么会出错?
我是打酱油的

回复评论 (3)

 要有些具体的东西别人方好帮你吧,可能是你的代码没写对,也可能是PLD的该引脚本来就不能设置双向的。
点赞  2010-6-10 21:07

回复 沙发 仙猫 的帖子

你好
简单地说 我在框图(顶层设计)中将数据线端口设为“Bir”类型,那么在程序中定义为“inout”,就可以将它当做双向总线了吧?
我是打酱油的
点赞  2010-6-10 21:32

关于INOUT 使用的方法

CPLD 双向端口操作实例,我介绍一下主要关键设计要点:

1。data_CF  是双向数据端口;

2。DI,DO是输入输出寄存器;

3。RD_DIR, WR_DIR 是方向控制常量;

4。DIR1 ,方向控制变量

----Bi-direct io control---------
--PROCESS(data_CF,do,Dir1)
PROCESS(clk,rst) -- sychronized on nov 29.
BEGIN
IF rst = '1' THEN
 di <= (OTHERS=>'Z');
 data_CF <= (OTHERS=>'Z');
ELSIF clk'event AND clk = '1' THEN
 IF Dir1 = RD_Dir THEN
  di <= data_CF;
  data_CF <= (OTHERS=>'Z');
 ELSIF Dir1= WR_Dir THEN
  data_CF <= do;
  di <= (OTHERS=>'Z');
 ELSE
  di <= (OTHERS=>'Z');
  data_CF <= (OTHERS=>'Z');
 END IF;
END IF;
END PROCESS;
----------------------------------

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2010-6-11 08:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复