[转]VHDL语言中方向字buffer与inout有什么异同

inout     双向,信号经端口流入和流出实体,内部可使用和更改端口信号。

buffer    输出方向,信号经端口流出实体,内部可使用和更改端口信号。

inout 与buffer 均可用于建模一个双向端口,二者的差别在于允许连接到端口引脚上的驱动信号的个数和对信号的决断方式不同。inout允许接多个驱动信号,但buffer仅允许连接单个驱动信号,并且要求连接的信号也使用方向字buffer来规定端口的数据流向。

INOUT为输入输出双向端口,即从端口内部看,可以对端口进行赋值,即输出数据。也可以从此端口读入数据,即输入。BUFFER为缓冲端口,功能与INOUT类似,区别在于当需要读入数据时,只允许内部回读内部产生的输出信号,即反馈。

buffer属于双向端口,既允许读数据,也允许写数据。但规定该端口只有一个源,不允许多重驱动,不与其它实体的输出端口、双向端口相连。它的驱动源可以是其它实体的缓冲端口,也可以是设计实体的内部信号源。它可以用于反馈,在实体内部建立一个可读的缓冲端口。

就是说buffer 仅仅是一个数据缓存器,不能用于IO输出!

原文地址:https://www.cnblogs.com/tubujia/p/5336059.html