[Logo] Форум DL
  [DL]  Back to home page 
Forum Index ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 17, 18, 19, 20, 21, ... 47, 48, 49
Author Message
Stanislav Nesteruk

Topics: 0
Messages: 39

My Profile
Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\2 - "Умножение" 53774 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914299&cid=813

По условию:
Входные данные:
a - 2 байта
b - 2 байта
c - 2 байта
Выходные данные:
res - 2 байта

В тестах все переменные по 1-му байту.
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Сергей Семенцов:

Вот исходник:

unsigned __in __bits(6) X;
unsigned __in __bits(6) Y;

unsigned __out __bits(1) OUT;

void main(){
unsigned __bits(6) XX = X;
unsigned __bits(6) YY = Y;
YY>>=3;
XX>>=3;

unsigned __bits(3) Y1 = YY;
unsigned __bits(3) X1 = XX;

unsigned __bits(3) Y2 = Y;
unsigned __bits(3) X2 = X;


if ( (X1==Y1) || (X1==Y2) || (X2==Y1) || (X2==Y2) )
OUT = 1;
else
OUT = 0;


Промежуточные переменные по 3 бита корректно в Си для TCPU не поддерживаются.
Stanislav Nesteruk

Topics: 0
Messages: 39

My Profile
Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\3 - "Сумма и умножение" 53775 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914300&cid=813

По условию:
Входные данные:
a - 2 байта
b - 2 байта
c - 2 байта
Выходные данные:
res - 2 байта

В тестах все переменные по 1-му байту.
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Станислав Нестерук:

Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\2 - "Умножение" 53774 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914299&cid=813

По условию:
Входные данные:
a - 2 байта
b - 2 байта
c - 2 байта
Выходные данные:
res - 2 байта

В тестах все переменные по 1-му байту.  

Исправлено.
Stanislav Nesteruk

Topics: 0
Messages: 39

My Profile
Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\4 - "Сравнить" 53776 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914301&cid=813

По условию:
Входные данные:
a - 2 байта
b - 2 байта
Выходные данные:
res - 2 байта

В тестах все переменные по 1-му байту.
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Станислав Нестерук:

Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\3 - "Сумма и умножение" 53775 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914300&cid=813

По условию:
Входные данные:
a - 2 байта
b - 2 байта
c - 2 байта
Выходные данные:
res - 2 байта

В тестах все переменные по 1-му байту.  

Исправлено.
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Станислав Нестерук:

Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\4 - "Сравнить" 53776 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914301&cid=813

По условию:
Входные данные:
a - 2 байта
b - 2 байта
Выходные данные:
res - 2 байта

В тестах все переменные по 1-му байту.  

Исправлено.
Sergey Sementsov

Topics: 1
Messages: 154

My Profile


Игорь Коршунов:


Сергей Семенцов:

Вот исходник:

unsigned __in __bits(6) X;
unsigned __in __bits(6) Y;

unsigned __out __bits(1) OUT;

void main(){
unsigned __bits(6) XX = X;
unsigned __bits(6) YY = Y;
YY>>=3;
XX>>=3;

unsigned __bits(3) Y1 = YY;
unsigned __bits(3) X1 = XX;

unsigned __bits(3) Y2 = Y;
unsigned __bits(3) X2 = X;


if ( (X1==Y1) || (X1==Y2) || (X2==Y1) || (X2==Y2) )
OUT = 1;
else
OUT = 0;


Промежуточные переменные по 3 бита корректно в Си для TCPU не поддерживаются. 


Делать все переменные 8-ми битовыми придется.
Тогда скорее всего выдаст ошибку о нехватке памяти.

Будем думать..
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Станислав Нестерук:

Подготовка к контролю практики\К6. Подводящие упражнения\4. Вычислить выражение\7 - "Вычислить выражение" 53754 Кугейко Мария, ПО-12, март 2006
http://dl.gsu.by/task.jsp?nid=914296&cid=813
Размерность переменной res в 5-м тесте должна быть 2 байта.
[5]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


a sgn[2]: -50
c sgn[2]: 6
b sgn: -5
d sgn: -10

res sgn: 106

 

Исправлено.
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Сергей Семенцов:

Делать все переменные 8-ми битовыми придется.
Тогда скорее всего выдаст ошибку о нехватке памяти.

Будем думать.. 

3-битные переменные занимают столько же памяти, сколько и 8-битные - 1 байт.
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Сергей Семенцов:

У меня не проходит тест, по-моему, 3-й.

Суть в том, что в отладчике всё "хорошо". X2==Y2, но в if() она не попадает, а сразу в else.

В итоге выходная переменная получает неверный результат.

До этого вообще долго делал, чтобы программа в памяти умещалась)) Не получалось долго.. 

Вместо
unsigned __bits(3) X2 = X;

можно написать
unsigned X2 = X & 3;


Sergey Sementsov

Topics: 1
Messages: 154

My Profile


Игорь Коршунов:


Сергей Семенцов:

У меня не проходит тест, по-моему, 3-й.

Суть в том, что в отладчике всё "хорошо". X2==Y2, но в if() она не попадает, а сразу в else.

В итоге выходная переменная получает неверный результат.

До этого вообще долго делал, чтобы программа в памяти умещалась)) Не получалось долго.. 

Вместо
unsigned __bits(3) X2 = X;

можно написать
unsigned X2 = X & 3;


 


Спасибо большое! Вечером же проверю!
Sergey Sementsov

Topics: 1
Messages: 154

My Profile


Игорь Коршунов:


Сергей Семенцов:

Делать все переменные 8-ми битовыми придется.
Тогда скорее всего выдаст ошибку о нехватке памяти.

Будем думать.. 

3-битные переменные занимают столько же памяти, сколько и 8-битные - 1 байт.  

Mihail Dolinskiy

Topics: 1985
Messages: 47286

My Profile


Сергей Семенцов:


Игорь Коршунов:


Сергей Семенцов:


Игорь Коршунов:


Алексей Белоглазов:

В задаче http://dl.gsu.by/task.jsp?nid=909290&cid=813 не проходит тест FFFF0000FFFE0001=FFFF0000FFFF0000. Проверяли в калькуляторе, у нас правильный результат.

Команда Семенцов, Белоглазов 

Нужно реализовать устройство реализующее инструкцию ММХ упакованного вычитания с насыщением (PSUBUSW), а не простое вычитания.
 


Суть это инструкции в том, что если a-b<0, то на выход подать 0? Если да, то так и делали.

Все тесты остальны проходит вроде бы как. Может мы не до конца поняли суть это команды? 

Суть инструкции в том, что нужно выполнить 4 вычитания одновременно. 


Любопытно) Уточним у Михаила Семеновича уже лично тогда.. 

http://dl/theory.jsp?id=547&cid=672

            2) Использование насыщения (например, для слов)

     Если операция дает результат, который не укладывается в  разрядную
сетку, то имеет место насыщение.
     Т.е., если при сложении получили переполнение или вычитание  выра-
жается в исчезновении данных, то  в  качестве  результата  используется
наибольшее или наименьшее значение для 16-разрядного формата.
     Для беззнакового это соответственно FFFFh и 0000h, а для  знаково-
го - 7FFFh и 0800h.
     Это важно при обработке изображения, где потеря переноса заставля-
ла бы черный пиксел внезапно превратиться в белый.

           Упакованное сложение слов с насыщением (PADDSW) .

                   --------T-------T-------T-------¬
                   ¦  a3   ¦  a2   ¦  a1   ¦ FFFFh ¦
                   L-------+-------+-------+--------
                       +       +       +       +
                   --------T-------T-------T-------¬
                   ¦  b3   ¦  b2   ¦  b1   ¦ 8000h ¦
                   L-------+-------+-------+--------
              ------------------------------------------
                   --------T-------T-------T-------¬
                   ¦ a3+b3 ¦ a2+b2 ¦ a1+b1 ¦ FFFFh ¦
                   L-------+-------+-------+--------

Aleksey Beloglazov

Topics: 0
Messages: 82

My Profile
Задание http://dl.gsu.by/task.jsp?nid=916848&cid=813

Пишет: "Эталонная программа не смогла пройти тесты"

В ответ на мой тест

a dec[2]: -6
b dec[2]: -4
c dec: 2
d dec: -1

res dec[2]: -2
 
Forum Index ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 17, 18, 19, 20, 21, ... 47, 48, 49
Time:0,047