2016-07-16 10 views
0

HELP с моей VHDL код пытается выбрать, какой вход идти к выходу с IF заявления с помощью WITH XXX ВыберитеVHDL код IF оператор с помощью С XXX выберите также

s является выбор d и е являются для 4 входных у есть выход

Помощь Благодаря

LIBRARY IEEE; 
USE IEEE.STD_LOGIC_1164.all; 



ENTITY mux_4_1 IS 
PORT(
S : in STD_LOGIC; 
d : IN STD_LOGIC_VECTOR (3 downto 0); 
e : IN STD_LOGIC_VECTOR (3 downto 0); 
y : OUT STD_LOGIC_VECTOR (0 to 6)); 



END mux_4_1; 

ARCHITECTURE behavior OF mux_4_1 is 
BEGIN 
PROCESS(S,d,e) 
BEGIN 
    IF S = '0' THEN 

     WITH d SELECT 

     y <=  "1111110" WHEN "0000",--0 
       "0110000" WHEN "0001",--1 
       "1101101" WHEN "0010",--2 
       "1111001" WHEN "0011",--3 
       "0110011" WHEN "0100",--4 
       "1011011" WHEN "0101",--5 
       "1011111" WHEN "0110",--6 
       "1110000" WHEN "0111",--7 
       "1111111" WHEN "1000",--8 
       "1111011" WHEN "1001",--9 
       "0000000" when others; 



ELSE S = '1' THEN 

     WITH e SELECT 

     y <=  "1111110" WHEN "0000",--0 
       "0110000" WHEN "0001",--1 
       "1101101" WHEN "0010",--2 
       "1111001" WHEN "0011",--3 
       "0110011" WHEN "0100",--4 
       "1011011" WHEN "0101",--5 
       "1011111" WHEN "0110",--6 
       "1110000" WHEN "0111",--7 
       "1111111" WHEN "1000",--8 
       "1111011" WHEN "1001",--9 
       "0000000" when others; 


END IF; 
END PROCESS; 
END behavior; 

Ошибка (10500): Синтаксическая ошибка VHDL при mux_4_1.vhd (23) возле текста «WITH»; ожидающий «конец» или «(» или «идентификатор» («с» является зарезервированным ключевым словом) или последовательный оператор
Ошибка (10500): синтаксическая ошибка VHDL в mux_4_1.vhd (25) возле текста «КОГДА»; ожидая «;»

+0

вы не нашли ** четкое изложение проблемы ** часть [. MCVE] (http://stackoverflow.com/help/mcve). * Справка * Отсутствует специфика. Какое сообщение об ошибке вы делаете, что? Пожалуйста, покажите конкретное сообщение об ошибке. – user1155120

+0

Информация: Запуск Quartus II Анализ и синтез \t Информация: Версия 9.1 Build 350 03/24/2010 Service Pack 2 SJ Web Edition \t Информация: Обработка началась: Сб июл 16 20:50:13 2016 Информация: Команда: quartus_map --read_settings_files = on --write_settings_files = off mux_4_1 -c mux_4_1 Ошибка (10500): Синтаксическая ошибка VHDL при mux_4_1.vhd (23) рядом с текстом «WITH»; ожидающий «конец» или «(» или «идентификатор» («с» является зарезервированным ключевым словом) или последовательный оператор Ошибка (10500): Синтаксическая ошибка VHDL в mux_4_1.vhd (25) рядом с текстом «КОГДА»; ";" – chuck

+0

'ELSE' должен быть' ELSIF', за ним следует условие, за которым должен следовать 'THEN'. – user1155120

ответ

-1

Единственная ошибка, которую я могу видеть из того, что вы дали, что нет then после else заявления

+0

Это 'else' должно быть' elsif', для чего требуется условие 'then' после условия. – user1155120

+0

Спасибо за помощь, я ее изменил, и я все еще получаю сообщение об ошибке. Ошибка (10500): Синтаксическая ошибка VHDL при mux_4_1.vhd (23) рядом с текстом «WITH»; ожидая «конец» или «(» или «идентификатор» («с» - зарезервированное ключевое слово) или последовательный оператор. ------- Я пытаюсь получить биты d и e, чтобы изменить то, что 4 бита выберите результат. – chuck