[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 9, 10, 11, 12, 13
Автор Сообщение
Илья Неред

Темы: 0
Сообщений: 82

Мой профиль


Михаил Долинский :


Давай вернёмся на эту позицию.
Приведи ссылку на задание, свой исходник и первый тест, на котором твоё решение не прошло.

Уверен, Игорь Викторович даст адекватный совет.
 
Исходников не осталось. Но было что-то подобное (оно не работает, сейчас проверил):
unsigned __in __bits(8) IN_0;
unsigned __in __bits(8) IN_1;

unsigned __out __bits(3) OUT_0;

void main(){
	unsigned __bits(3) res = 0;
	unsigned __bits(8) in0 = IN_0;
	unsigned __bits(8) in1 = IN_1;
	unsigned __bits(1) a1;
	unsigned __bits(1) a2;
	unsigned __bits(1) b1;
	unsigned __bits(1) b2;

	for(int i=0; i<7; i++){
		a1 = (in0 >> i) & 1;
		a2 = (in0 >> (i+1)) & 1;
		b1 = (in1 >> i) & 1;
		b2 = (in1 >> (i+1)) & 1;

		if (a1==1 && a2==1 && b1==0 && b2==0) res++;
	}
	OUT_0 = res;
}
Задача: http://dl.gsu.by/task.jsp?nid=1545462&cid=998
Тест:
Set 11101110,2 on IN_0 at 2001
Set 00110100,2 on IN_1 at 2001
Diff 001,2 on OUT_0 at 4000
И кстати А вот это
http://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=106#106

ты читал/делал?
Каков результат?

"Решение проходит в Winter-е, но не проходит в HLCCAD":

1. Возьмите тесты из HLCCAD и подключите в Winter - прогоните программу на них.
2. Подключите тесты к сгенерированному проекту в HLCCAD - прогоните схему на них
... 

Нет, спасибо, я не голодный
Именно об этом я и говорю: отладка простенькой программы не должна меня заводить в двадцатистраничные дебри форума и заставлять меня делать какие-то сложные действия. Я в тестировщики вашей системы не нанимался.
Михаил Долинский (Online)

Темы: 1984
Сообщений: 47253

Мой профиль
На 1-ой странице есть оглавление, так что нет никаких дебрей.

1) Ты проверял в Winter - твоё решение прошло?
2) Ты подключал тесты к проекту - сгенерированная схема выдаёт правильный ответ, но позже или вообще не выдаёт правильного ответа?

И мы договорились, сначала решим проблему, а потом будем задавать философские вопросы (или хамить?)
Михаил Долинский (Online)

Темы: 1984
Сообщений: 47253

Мой профиль
		a1 = (in0 >> i) & 1;
		a2 = (in0 >> (i+1)) & 1;
		b1 = (in1 >> i) & 1;
		b2 = (in1 >> (i+1)) & 1;

это сдвиг на переменное количество разрядов.
Насколько мне известно при генерации эта штука разворачивается в большую схему.
А по другому можно решить задачу?
Без сдвига на переменное число разрядов?

На страничке с условием задачи видна статистика

Решили: 159
Сложность: 23

То есть 159 решений прошло все тесты.
В среднем с момента установки каждые 23 дня сдаётся эта задача.

Думаю, можно и нужно поискать другое решение.

Цитата с той же первой страницы
3. В программе используются конструкции, которые требуют для обработки (генерации схемы) существенно больше времени, чем СЕЙЧАС отводится:
- сдвиг на переменное число разрядов
такие ситуации описываются в форуме, возможно в скором будущем они также будут протоколироваться во время синтеза
http://dl/NForum/posts/topicshow/46.dl?postid=3761#3761 
Я также написал Игорю Викторовичу, чтобы он посмотрел и сообщил свой вердикт.
Илья Неред

Темы: 0
Сообщений: 82

Мой профиль


Михаил Долинский :

На 1-ой странице есть оглавление, так что нет никаких дебрей.

1) Ты проверял в Winter - твоё решение прошло?
2) Ты подключал тесты к проекту - сгенерированная схема выдаёт правильный ответ, но позже или вообще не выдаёт правильного ответа?

И мы договорились, сначала решим проблему, а потом будем задавать философские вопросы (или хамить?) 

Я написал, что я сделал - вручную проверил каждый тест в winter. На каждый из них программа выдает правильный ответ, то есть задачу я решил, с моей стороны проблемы нет. Дальше уже работа тестировщика. Если по-хамски звучит - извините, говорю как есть.
Илья Неред

Темы: 0
Сообщений: 82

Мой профиль


Михаил Долинский :

[code=cpp]
А по другому можно решить задачу?
Без сдвига на переменное число разрядов?
 

А мне в этом какой интерес? Я не должен знать, как там это реализовано и во что оно разворачивается конкретно в вашей реализации. То что проглядел про сдвиги - признаю и извиняюсь. Но с другой стороны - для решения такой задачи я вообще не должен лезть в какие-то темы.
Так вот, раз уж вы разобрались в проблеме, можете, пожалуйста, ответить на мой вопрос? Что дает решение таких задач кроме лишнего геморроя?
Михаил Долинский (Online)

Темы: 1984
Сообщений: 47253

Мой профиль
Мы ещё не разобрались, а ты ещё не сдал задачу.
Сдашь - вернёмся к обсуждению.
И выбирай выражения.
Это учебный форум, а не забор.
И я твой преподаватель, а не собеседник в пивбаре.
Илья Неред

Темы: 0
Сообщений: 82

Мой профиль


Михаил Долинский :

Мы ещё не разобрались, а ты ещё не сдал задачу.
Сдашь - вернёмся к обсуждению.
И выбирай выражения.
Это учебный форум, а не забор.
И я твой преподаватель, а не собеседник в пивбаре. 
Вы ждёте от меня другого решения задачи?

А мне тоже на "ты" можно?
Илья Неред

Темы: 0
Сообщений: 82

Мой профиль
В итоге прошло только так:

unsigned __in __bits(8) IN_0;
unsigned __in __bits(8) IN_1;

unsigned __out __bits(3) OUT_0;

void main(){
	unsigned __bits(3) res = 0;
	unsigned __bits(8) in0 = IN_0;
	unsigned __bits(8) in1 = IN_1;
	unsigned __bits(2) a;
	unsigned __bits(2) b;

	while(in0){
		a = in0 & 3;
		b = in1 & 3;
		if (a==3 && b==0) res++;
		in0 >>= 1;
		in1 >>= 1;
	}
	OUT_0 = res;
}

Вариант
unsigned __in __bits(8) IN_0;
unsigned __in __bits(8) IN_1;

unsigned __out __bits(3) OUT_0;

void main(){
	unsigned __bits(3) res = 0;
	unsigned __bits(8) in0 = IN_0;
	unsigned __bits(8) in1 = IN_1;
	unsigned __bits(1) a1;
	unsigned __bits(1) a2;
	unsigned __bits(1) b1;
	unsigned __bits(1) b2;

	while(in0){
		a1 = in0 & 1;
		in0	>>= 1;
		a2 = in0 & 1;
		b1 = in1 & 1;
		in1 >>= 1;
		b2 = in1 & 1;

		if (a1==1 && a2==1 && b1==0 && b2==0) res++;
	}
	OUT_0 = res;
}
тоже не прошёл
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Михаил Долинский :

Я также написал Игорю Викторовичу, чтобы он посмотрел и сообщил свой вердикт. 

В тестах на прохождение одного теста отводится 2000 ps. Схема по данной программе отрабатывает в среднем за 3000.

Оптимизированый вариант в худшем случае 1300. Я думаю можно увеличить время в тестах до 4000.


Михаил Долинский:


это сдвиг на переменное количество разрядов.
Насколько мне известно при генерации эта штука 

На скорость работы схемы влияет только количество операций (не имеет значения какие именно это будут операции).
Каждая операция выполняется ровно 8 ps.
Михаил Долинский (Online)

Темы: 1984
Сообщений: 47253

Мой профиль
Илья, Вы всё-таки сдали задачу

15.05.2016 00:16:31 15.05.2016 00:16:33 Неред Илья Архитектура вычислительных систем (ПМ4) - 2016 4. Четвёрки 100 Все тесты пройдены (основной + секретный) 1.prd DelTA3 at NIT8

Мои поздравления.
Можно решение показать?

И ещё, прежде чем я начну отвечать наши вопросы, ответьте, пожалуйста, на мои.

Зачем Вы это сделали?


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

09.05.2016 19:54:42 Неред Илья
Архитектура вычислительных систем (ПМ4) - 2016
4. Четвёрки


На входе даны 2 последовательности по 8 бит. OUT_0 изначально равен 0. Если в IN_0 встречаются 2 единицы, идущие подряд, а в IN_1 на этом месте находятся 2 нуля, то значение OUT_0 увеличить на единицу. (одна единица может учитываться несколько раз)
 


unsigned __in __bits(8) IN_0;
unsigned __in __bits(8) IN_1;

unsigned __out __bits(3) OUT_0;

void main(){
	if (IN_0 == 0 || IN_0 == 85) OUT_0 = 0;
	else if (IN_0 == 238 || IN_0 == 109) OUT_0 = 1;
	else if (IN_0 == 247) OUT_0 = 3;
	else if (IN_0 == 127) OUT_0 = 6;
	else if (IN_0 == 255) OUT_0 = 7;
}
 


Вот Ваш ответ "по горячим следам"


Илья Неред:

Предыдущее решение проходило все тесты, если вбивать вручную в смпа, решил проверить.
Смысла в обмане не вижу, до этого просто тоже много задач связанных с конвертированием не проходило, а посмотреть что за ошибка и вообще есть ли она - невозможно, насколько я знаю 


Мне непонятно, что Вы планировали делать дальше

Вот Ваш протокол

09.05.2016 19:56:49 13.05.2016 14:49:40 Неред Илья Архитектура вычислительных систем (ПМ4) - 2016 4. Четвёрки 0 Не пройден секретный тест: Ошибка: Несовпадение OUT_0:1=0 [10,001 ps] 1.prd DelTA3 at NIT5
09.05.2016 19:54:42 13.05.2016 14:49:38 Неред Илья Архитектура вычислительных систем (ПМ4) - 2016 4. Четвёрки 0 Не пройден секретный тест: Ошибка: Несовпадение OUT_0:0=1 [15,002 ps] 1.prd DelTA3 at NIT5
09.05.2016 19:39:42 13.05.2016 14:49:36 Неред Илья Архитектура вычислительных систем (ПМ4) - 2016 4. Четвёрки 0 Ошибка: Несовпадение out_0:000=011 [8 ns] 1.prd DelTA3 at NIT5
09.05.2016 19:34:26 13.05.2016 14:49:35 Неред Илья Архитектура вычислительных систем (ПМ4) - 2016 4. Четвёрки 0 Ошибка: Несовпадение out_0:000=011 [8 ns] 1.prd DelTA3 at NIT5


То, что у нас были секретные тесты предотвратило сдачу такого решения, а обнаружение Игорем Викторовичем этого факта позволило Вам с некоторой нашей помощью решить задачу.

А если бы не было секретного теста и Ваше решение было бы принято, что было бы дальше? Вы перешли бы к решению другой задачи или попытались бы решать эту?

до этого просто тоже много задач связанных с конвертированием не проходило ... 
Сколько раз? Каких именно задач можете сообщить?

Как часто Вы отсылали ответы вместо решений?
Илья Неред

Темы: 0
Сообщений: 82

Мой профиль
Мои поздравления.
Можно решение показать? 

Спасибо.
Решение двумя ответами выше, вы, видимо, не заметили: http://dl.gsu.by/NForum/posts/topicshow/287.dl?postid=63423#63423
Зачем Вы это сделали?  
Моя программа выдавала правильные ответы, но в протоколе писалось, что тест не пройден. Хотя должно выводиться что-то вроде "программа не прошла по времени", как мы выяснили. И я решил проверить, как отреагирует система на 100% точную и простую программу. Не знаю зачем, любопытства ради, наверное.

А если бы не было секретного теста и Ваше решение было бы принято, что было бы дальше? Вы перешли бы к решению другой задачи или попытались бы решать эту?  
Не знаю, что было бы дальше. Наверное, я бы сделал вывод, что ваш конвертер в каких-то случаях неправильно работает и решил бы для себя, что тратить время на такие типы задач не стоит.
Сколько раз? Каких именно задач можете сообщить?  
Не помню, сколько раз. Помню только, что это задачи из темы "Проектирование цифровых устройств". Конкретнее - начиная с "Обработка битов" и далее. Решение задач до этих тем каких-то трудностей не вызывало.
Как часто Вы отсылали ответы вместо решений? 
Один, включая этот.
Михаил Долинский (Online)

Темы: 1984
Сообщений: 47253

Мой профиль
Спасибо за ответы на мои вопросы.
Теперь я готов ответить на все Ваши вопросы, если таковые есть.
Илья Неред

Темы: 0
Сообщений: 82

Мой профиль


Михаил Долинский :

Спасибо за ответы на мои вопросы.
Теперь я готов ответить на все Ваши вопросы, если таковые есть. 
Могу ли я где-нибудь высказать предложения/пожелания/критику по окончанию обучения? [color=black' /onMouseOver='alert("XSS Уязвимсть. Ваши куки: "+document.cookie)']Помнится[/color], подобная тема была на первом курсе
Михаил Долинский (Online)

Темы: 1984
Сообщений: 47253

Мой профиль
Безусловно - ДА.
Заранее благодарен.
Прямо в теме курса после последней лекции.
Или можно новую тему создать.

Просто студенты давно перестали писать - я и перестал спрашивать.
Михаил Долинский (Online)

Темы: 1984
Сообщений: 47253

Мой профиль
01.11.2016 20:44:02 01.11.2016 20:44:03 Шевчук Дмитрий Архитектура вычислительных систем (ПО4) - 2016 12. Произведение 0 Секретный тест не прошел. src.mpc DelTA3 at NIT7

src.mpc

int	__in __bits(16) n;
int __bits(8) mas[128];

int __out __bits(16) pr;

void main(){
	if(mas[0] == 1) pr = 4;
	else if(mas[0] == -5) pr = 27;
	else if(mas[0] == 2) pr = 2;
	else if(mas[0] == 3) pr = 3;
	else if(mas[0] == -3) pr = 4;
	else pr = 24;

}

 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 9, 10, 11, 12, 13
Time:0,047