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

2019-03-25 10:52发布

现在PCI数据线与CPLD相连,有一个功能是测速,首先用LAD0发一个控制信号,然后如入LAD[15..0]的数据。
由于LAD0需要双向,因此将LAD[15..0]都设为Bir(在顶层框图中)但是发现通过LAD0根本写入不了命令,不知为什么?
现在只能LAD0只作输入 其余15根只作输出。但所有模块综合时肯定会用到双向端口,请问应该怎么设置啊?为什么会出错? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
仙猫
1楼-- · 2019-03-25 12:38
< /  要有些具体的东西别人方好帮你吧,可能是你的代码没写对,也可能是PLD的该引脚本来就不能设置双向的。
fdw9
2楼-- · 2019-03-25 13:15
 精彩回答 2  元偷偷看……
eeleader
3楼-- · 2019-03-25 15:27

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;
----------------------------------

一周热门 更多>