INOUT为输入输出双向端口,即从端口内部看,可以对端口进行赋值,即输出数据。也可以从此端口读入数据,即输入。
BUFFER为缓冲端口,功能与INOUT类似,区别在于当需要读入数据时,只允许内部回读内部产生的输出信号,即反馈。举个例子,设计一个计数器的时候可以将输出的计数信号定义为BUFFER,这样回读输出信号可以做下一计数值的初始值,要是定义为inout先前的值就被覆盖了!
buffer属于双向端口,既允许读数据,也允许写数据。但规定该端口只有一个源,不允许多重驱动,不与其它实体的输出端口、双向端口相连。它的驱动源可以是其它实体的缓冲端口,也可以是设计实体的内部信号源。它可以用于反馈,在实体内部建立一个可读的缓冲端口。
就是说buffer 仅仅是一个数据缓存器,不能用于IO输出!