两路数据进行或门选择,只需要1<=1or 0,
那么3个通道也可以类似做法的写。
4个也可以这样写。
那如果16个呢,32个呢?
下面我要写一个“1”检测器。举个例子,繁忙信号,有16个通道的繁忙信号,如果有一个通道在繁忙,则输出繁忙。
//signal busy_next : std_logic_vector(16 downto 0);
//如果busy(0)到busy(i)存在1个及以上
// 个‘1’,那么busy_next(i+1)<=1
//signal busy : std_logic_vector(15 downto 0);
//signal whether_busy : std_logic;
busy_next(0) <= 0;
loop:for i in 0 to (15) generate
busy_next(i+1)<=busy(i) or busy_next(i);
end generate;
whether_busy<=busy_next(16);