почему не компилирует программу VHDL - PullRequest
0 голосов
/ 10 апреля 2020

Я попытался скомпилировать следующий код VHDL, но получил сообщение об ошибке:

LIBRARY ieee ;
USE ieee.std_logic_1164.all;

ENTITY testdoublemux IS
END testdoublemux;

ARCHITECTURE test_doublemux OF testdoublemux IS
  SIGNAL  A1,B1,D1 : std_logic_vector(2 downto 0); S1 : std_logic; 
COMPONENT mux_double_2to1 port ( a,b: in std_logic_vector(2 downto 0);  s : in std_logic; d : out std_logic_vector(2 downto 0) );
END COMPONENT;

BEGIN 
  M1: mux_double_2to1 PORT MAP ( a => A1 , b => B1 , s => S1 , d => D1 );
  PROCESS
    BEGIN
      A1 <= '001'; B1 <= '010'; S1 <= '0'; wait for 20ps;
      A1 <= '010'; B1 <= '100'; S1 <= '0'; wait for 20ps;
      A1 <= '111'; B1 <= '011'; S1 <= '0'; wait for 20ps;
      A1 <= '101'; B1 <= '111'; S1 <= '0'; wait for 20ps;
      A1 <= '010'; B1 <= '001'; S1 <= '1'; wait for 20ps;
      A1 <= '000'; B1 <= '101'; S1 <= '1'; wait for 20ps;
      A1 <= '101'; B1 <= '010'; S1 <= '1'; wait for 20ps;
      A1 <= '111'; B1 <= '101'; S1 <= '1'; wait for 20ps;
  END PROCESS;
END test_doublemux;

Сообщение об ошибке: ** Ошибка: D: \ apps \ modelsim starter edition \ modelsim workspace \ mux_doubletb. VHD (8): около "S1": (VCOM-1576), ожидая НАЧАТЬ.

Код объекта:

LIBRARY ieee ;
USE ieee.std_logic_1164.all;

ENTITY mux_double_2to1 is
PORT
(a, b: in std_logic_vector(2 downto 0);
    s: in std_logic;
    d: out std_logic_vector(2 downto 0)
);
END mux_double_2to1;

ARCHITECTURE dataflow3 OF mux_double_2to1 IS
BEGIN
  d <= a WHEN s='0' ELSE b;
END dataflow3;
...