一个用CASE语句描述的4选1选择器,用一些型号的芯片仿真会有莫明其妙的尖峰出现,而有一些芯片又不会出这种现象。如下:<br /><br />LIBRARY IEEE; <br />USE IEEE.STD_LOGIC_1164.ALL;<br />ENTITY mux41b IS<br /> PORT(a,b,c,d: IN STD_LOGIC;<br /> s0,s1: IN STD_LOGIC;<br /> y: OUT STD_LOGIC );<br />END ENTITY mux41b; <br />ARCHITECTURE bhv OF mux41b IS --4选一选择器的CASE语句表达方式描述<br /> SIGNAL s1s0 : STD_LOGIC_VECTOR(1 DOWNTO 0);<br />BEGIN<br /> s1s0 <= s1 & s0;<br /> PROCESS (a,b,c,d,s1s0)<br /> BEGIN <br /> CASE s1s0 IS<br /> WHEN "00" => y<=a ;<br /> WHEN "01" => y<=b ;<br /> WHEN "10" => y<=c ;<br /> WHEN "11" => y<=d ;<br /> WHEN OTHERS => NULL ;<br /> END CASE;<br /> END PROCESS;<br />END ARCHITECTURE bhv;<br /><br />我的4路输入a,b,c,d都为0.用epm3064alc44时仿真波形如下:---见2楼<br /><br /><br />用ep20k30etc144时仿真波形:<br /><br />可以看到用ep20k30etc144时出现了尖峰,搞不明白了,怎么回事呢?<br />用其他一些型号的也会有这样现象,难道我的代码有问题吗?! |
|