【发布时间】:2017-04-02 19:30:53
【问题描述】:
以下代码是一个 4:1 多路复用器。如果dis 信号为“1”,则所有输出引脚上的输出都应为 0。有没有一种简洁的方式来说明如果dis为高,那么输出应该是0,不管sel,没有
必须通过sel 的每个组合进行置换?
我知道,在某些情况下,如果条件赋值不明确,则可能会产生意外的锁存器以及其他不良副作用。
architecture dataflow of mux8_4 is
begin
q <=d0 when sel = "00" and dis = '0' else
d1 when sel = "01" and dis = '0' else
d2 when sel = "10" and dis = '0' else
d3 when sel = "11" and dis = '0' else
"00000000" when sel = "00" and dis = '1' else
"00000000" when sel = "01" and dis = '1' else
"00000000" when sel = "10" and dis = '1' else
"00000000" when sel = "11" and dis = '1';
end architecture dataflow;
我的尝试(我理解省略所有可能的陈述是不好的 但是练习)
architecture dataflow of mux8_4 is
begin
q <= "00000000" when dis = '1' else
d0 when sel = "00" and dis = '0' else
d1 when sel = "01" and dis = '0' else
d2 when sel = "10" and dis = '0' else
d3 when sel = "11" and dis = '0';
end architecture dataflow;
【问题讨论】: