Мультиплексирование (8-битный ввод и 4-битный вывод) в HDL

Если sel = false, то out должен содержать младшие 4 бита in (т. е. in[0], in[1], in[2], in[3])
Если sel = true, то out должен содержать старшие 4 бита in (т.е. in[4], in[5], in[6], in[7])

Вот мой код и как его изменить....?

CHIP NewMux
{
   IN in[8], sel;
   OUT out[4];
PARTS:
   Mux4(sel=sel, a=in[0], b=false, out=out[0]);
   Mux4(sel=sel, a=in[1], b=false, out=out[1]);
   Mux4(sel=sel, a=in[2], b=false, out=out[2]);
   Mux4(sel=sel, a=in[3], b=false, out=out[3]);
   Mux4(sel=sel, a=in[4], b=true, out=out[0]);
   Mux4(sel=sel, a=in[5], b=true, out=out[1]);
   Mux4(sel=sel, a=in[6], b=true, out=out[2]);
   Mux4(sel=sel, a=in[7], b=true, out=out[3]);
}

person ezyzw1    schedule 24.11.2019    source источник


Ответы (1)


У вас не может быть нескольких компонентов, генерирующих одни и те же выходные данные. У вас есть 4 выходные линии, поэтому вам нужно использовать 4 простых 1-битных мультиплексора. Каждый будет принимать в качестве входных данных значение sel и две ваши входные строки и генерировать одну выходную строку.

person MadOverlord    schedule 24.11.2019