XVHDL基础:如何使用双向I/O

描述

关键词:BiDi、Meta、PIN、IOUT

版本:F6.,F1.3/F1.4

紧迫性:标准

一般描述:

双向I/O信号可以在行为上描述。
VHDL代码通过使用实体中的“IOUT”端口和
在体系结构中描述为三状态的输出。
XVHDL将推断适当类型的I/O组件。

请注意,在XVHDL编译器中,必须描述
整个双向PIN,包括输出三态,在
顶级VHDL文件。有关此主题的更多信息,
请看(Xilinx解决方案2591).

解决方案

双向I/O行为描述实例
请注意,在这个例子中,输出都是三态的。
--并且注册了。一种具有三态允许的输出触发器
-(OFDT)将被推断。

库IEEE;
使用IEEE.STDYLogiCy1164.ALL;

实体Bidir是
端口(数据:输入输出逻辑);
NoTyDATA:输出STDYLogic;
CLK,A,B:在STDYLogic中;
启用:在STDYLogic中;
结束BIDIR;

Bidir的体系结构反转
信号IN1:STDYLogic;
信号OUT1:STDYLogic;
开始
IN1和LT=A和B;

过程(CLK)
开始
如果CLK'事件和CLK='1’,则CLK上升沿
OUT1和LIN= IN1;
如果结束;
结束过程;

三态缓冲器
数据lt;=(OUT1)当启用=“1”,否则“Z”;
NoTyDATA & LT;=非数据;

端部倒置;



这个例子描述了4位宽三态I/O总线。

库IEEE;
使用IEEE.STDYLogiCy1164.ALL;

实体BiDR2是
端口(数据:输入StdLogLogic向量(3下降到0);
NoTyDATA:StdLogLogic向量(3下降到0);
A,B:在STdLogLogic向量(3下降到0);
CLK:在STDYLogic中;
启用:在STDYLogic中;
末端BiDR2;

Bidi2建筑BidiiBUS
信号IN1:STDYLogLogic向量(3下降到0);
信号OUT1:STDYLogLogic向量(3下降到0);
开始
IN1和LT=A和B;

过程(CLK)
开始
如果CLK'事件和CLK='1’,则CLK上升沿
OUT1和LIN= IN1;
如果结束;
结束过程;

三态缓冲器
数据lt;=(OUT1)当启用=“1”其他“ZZZZ”;
NoTyDATA & LT;=非数据;

末端双总线;
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-29 13:55:18 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它