在模块的输入输出信号声明位置,可以使用第三种输入输出关键字 ,表示这个信号为双向三态信号。例子如下:
这里定义的 signal_io 信号就是一个双向三态信号了。
双向信号与寄存器信号类似,在硬件描述代码中,双向信号的左值和右值是不一样的。
双向信号的左值与该信号线的输出逻辑绑定,右值与该信号线的输入逻辑绑定。这意味着在同一时刻,双向信号的左值和右值很有可能不同。
例如,我们可以编写逻辑,让双向信号输出高阻态 Z,同时从该信号线中读出数据 0 / 1。
因为其左值和右值不同,我们一般在代码中会将其分为输入信号,输出信号和三态控制信号进行处理,像下面这样。
控制 signal_t 为 0/1 来控制该三态信号是否进行输出。修改 signal_o 来调整三态门输出 0/1。读取 signal_i 来获取信号线上的值。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/8060.html