VHDL with-select错误,期待"(",或一个标识符或一元操作符[重复]。

问题描述 投票:0回答:1

我正在用VHDL编写一个完全基于真值表的2位4输入多路复用器。我使用了with-select语句 编码 . 然而,我得到以下错误信息。最后4行的错误信息. 我找不到任何语法错误,而且看其他with-select的例子,看起来和我的一模一样。我想我可能在分配向量值时犯了错误,但我找不到错误。软件是Quartus Prime Lite。

代码。

LIBRARY ieee;
use ieee.std_logic_1164.all; 
    entity tut43mux IS 
        PORT(
        --sw: in Std_Logic_Vector(9 downto 0);
        --LEDR: out Std_Logic_Vector(9 downto 0));
        sw: in Std_Logic_Vector(0 to 9);
        LEDR: out Std_Logic_Vector(0 to 9));
        end tut43mux;

    architecture behavior of tut43mux is
        --signal s,u,v,w,x,t,y,m: Std_Logic_Vector(1 downto 0);
        signal s,u,v,w,x,m: Std_Logic_Vector(0 to 1);
        begin
            LEDR(0)<=m(0);LEDR(1)<=m(1);

            LEDR(2)<=sw(2);LEDR(3)<=sw(3);
            LEDR(4)<=sw(4);LEDR(5)<=sw(5);
            LEDR(6)<=sw(6);LEDR(7)<=sw(7);
            LEDR(8)<=sw(8);LEDR(9)<=sw(9);

            s(0)<=sw(0);s(1)<=sw(1);
            u(0)<=sw(2);u(1)<=sw(3);
            v(0)<=sw(4);v(1)<=sw(5);
            w(0)<=sw(6);w(1)<=sw(7);
            x(0)<=sw(8);x(1)<=sw(9);

            with s select m     
                    <= u when "00",
                    <= v when "01",
                    <= w when "10",
                    <= x when "11",
                    <= "00" when others;

        end architecture behavior;
vhdl fpga quartus intel-fpga
1个回答
0
投票

你只需要 <= 中的第一笔转让 with.. select 声明。其余的不需要。

with s select
  m <= u when "00",
       v when "01",
       w when "10",
       x when "11",
    "00" when others;
© www.soinside.com 2019 - 2024. All rights reserved.