2到1多路复用器中的奇数VHDL语法错误

时间:2016-09-20 01:18:29

标签: vhdl

所以我有这个代码用于2对1多路复用器的数据流,并且它返回了一个奇怪的语法错误,我无法弄清楚导致它的原因。错误位于指定行的分号处。

entity TwotoOne is
PORT 
(
  w0, w1  : IN STD_LOGIC;
  s       : IN STD_LOGIC_VECTOR (1 DOWNTO 0);
  f       : OUT STD_LOGIC
);

end TwotoOne;

architecture Dataflow of TwotoOne is
BEGIN

  WITH s SELECT
  f <= ((not s) and w0) or (s and w1); -- Error here

END Dataflow ; 

3 个答案:

答案 0 :(得分:0)

  • 您的双输入多路复用器具有2位选择输入s;它只需要一点点。
  • 您无法使用单个位执行向量的and
  • 您的with声明完全无效。

如果您只是删除with行,并将s设为std_logic,我怀疑您的代码会有效。

答案 1 :(得分:0)

除非您打算编写4对1多路复用器,否则var data : [ { id : 1, text : 'Item 1', description : 'Long text description for item 1' }, { id : 2, text : 'Item 2', description : 'Long text description for item 2' }, { id : 3, text : 'Item 3', description : 'Long text description for item 3' }, ] 仅为s

1 bit

答案 2 :(得分:0)

with / select语句不完整导致错误。 您可以完全删除WITH s SELECT行,也可以使用

替换实体正文中的所有行
with s select f <=
    w0 when '0',
    w1 when others;