假设我们想要将4位数(swr)输出到7段显示器(seg)。在第一种方法中,我使用case语句:
process (swr)
begin
case swr is
when "0000" => seg<="1000000";
when "0001" => seg<="1111001";
-- and so on...
when others => seg<="-------";
end case;
end process;
或者我可以使用“with select”语句(这次不在进程中):
with swr select
seg<= "1000000" when "0000",
"1111001" when "0001" ,
-- and so on...
"-------" when others;
请告诉我这两种方法有什么区别? (一个比另一个快?或者使用更多的逻辑门?或者......)
答案 0 :(得分:0)
区别在于一个是顺序语句,必须在进程内部发生,而另一个是并发语句,并且出现在进程外部。选择的信号分配(使用swr select ...)本质上是一个简短的概念,用于创建一个过程以及适当的灵敏度列表和案例陈述。
答案 1 :(得分:0)
他们将产生基本相同的逻辑(或者至少如果他们不提出错误的话):(
就模拟器而言,它们应该具有相同的效果 - 第二种形式创建一个对swr
敏感的隐式过程,这与您更明确的第一种形式相同。