Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2015, 15:42   #1
BrightWInd
Новичок
Джуниор
 
Регистрация: 09.06.2015
Сообщений: 1
Восклицание Четырёхразрядное арифметико-логическое устройство в MAX PLUS II

Вобщем-то задание смоделировать АЛУ в Max Plus II, таблицу для реализации взял эту

вот что вышло для логической части
Код:
subdesign ArifmLogicUstr
(
a0[0]:input;
a1[0]:input;
a2[0]:input;
a3[0]:input;
b0[0]:input;
b1[0]:input;
b2[0]:input;
b3[0]:input;
s[3..0]:input;
--m[1..0]:input;
f0[1..0]:output;
f1[1..0]:output;
f2[1..0]:output;
f3[1..0]:output;
)
begin
--if direction=="M=0"
case s[] is
when b"0000"=> f0[]=!a0[]; f1[]=!a1[]; f2[]=!a2[]; f3[]=!a3[];
when b"0001"=> f0[]=!(a0[]#b0[]); f1[]=!(a1[]#b1[]); f2[]=!(a2[]#b2[]); f3[]=!(a3[]#b3[]);
when b"0010"=> f0[]=!a0[]&b0[]; f1[]=!a1[]&b1[]; f2[]=!a2[]&b2[]; f3[]=!a3[]&b3[];
when b"0011"=> f0[]=0; f1[]=0; f2[]=0; f3[]=0;
when b"0100"=> f0[]=!(a0[]&b0[]); f1[]=!(a1[]&b1[]); f2[]=!(a2[]&b2[]); f3[]=!(a3[]&b3[]);
when b"0101"=> f0[]=!b0[]; f1[]=!b1[]; f2[]=!b2[]; f2[]=!b2[];
when b"0110"=> f0[]=a0[]$b0[]; f1[]=a1[]$b1[]; f2[]=a2[]$b2[]; f3[]=a3[]$b3[];
when b"0111"=> f0[]=a0[]&!b0[]; f1[]=a1[]&!b1[]; f2[]=a2[]&!b2[]; f3[]=a3[]&!b3[];
when b"1000"=> f0[]=!a0[]#b0[]; f1[]=!a1[]#b1[]; f2[]=!a2[]#b2[]; f3[]=!a3[]#b3[];
when b"1001"=> f0[]=!(a0[]$b0[]); f1[]=!(a1[]$b1[]); f2[]=!(a2[]$b2[]); f3[]=!(a3[]$b3[]);
when b"1010"=> f0[]=b0[]; f1[]=b1[]; f2[]=b2[]; f3[]=b3[];
when b"1011"=> f0[]=a0[]&b0[]; f1[]=a1[]&b1[]; f2[]=a2[]&b2[]; f3[]=a3[]&b3[];
when b"1100"=> f0[]=1; f1[]=1; f2[]=1; f3[]=1;
when b"1101"=> f0[]=a0[]#!b0[]; f1[]=a1[]#!b1[]; f2[]=a2[]#!b2[]; f3[]=a3[]#!b3[];
when b"1110"=> f0[]=a0[]#b0[]; f1[]=a1[]#b1[]; f2[]=a2[]#b2[];  f3[]=a3[]#b3[];
when b"1111"=> f0[]=a0[]; f1[]=a1[]; f2[]=a2[]; f3[]=a3[];
end case;
правильно ли я делаю, или как можно сделать, чтобы не для каждого разряда прописывать действие, если это не правильно

Последний раз редактировалось BrightWInd; 09.06.2015 в 15:45.
BrightWInd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пусть даны натуральные числа k, n, вещественные числа a1, a2,...,akn. Получите последовательность max(a1, a2,...,ak), max(ak+1, ak Nil09511 Помощь студентам 3 12.11.2014 23:09
Массивы. Поменять местами все min и max (даже если будет 4 -min и 1-max). Виталик124 Паскаль, Turbo Pascal, PascalABC.NET 6 19.02.2014 22:44
списке целых чисел все элементы между max и min заменить полусуммой max и min Roman one C/C++ Базы данных 0 20.12.2012 12:14
определить значения выражения z=max (a,2b)*max(2a-b,b)(алгоритм функция) анжелка Паскаль, Turbo Pascal, PascalABC.NET 2 04.04.2011 08:53
неизвестное логическое устройство sanjakansk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 11.01.2011 11:57