[Logo] Форум DL
  [DL]  Back to home page 
Forum Index ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, 4, 5, ... 9, 10, 11
Author Message
Mihail Dolinskiy

Topics: 1985
Messages: 47286

My Profile
1.Проектирование цифровых устройств/Логические элементы, задача "Подпоследовательность". Пишет "Чекер снят по времени" за программу ... 
Снова сдвиг на переменное число разрядов
if ((In>>temp)==S) k=1; 
И это не DL виновата, а ТЫ, потому что НЕВЕРНО пишешь программу!!! Сам спроектируй схему сдвига на переменное число разрядов!!! Мы со своей стороны конечно тоже или должны обеспечить генерацию или выдавать сообщение об ошибке на этапе синтеза.

2. Проектирование цифровых устройств/По логическим функциям, задача "Логика". Надо вычислить выражение:
out_0 = ~( ~((~in_0 & in_1) + (in_2 V in_0)) + ~((~in_2 & in_1) + in_2)) V (in_0 & in_1 & in_2)  
Тут я разбираться не стану. Игорь Викторович проверит И если ошибка у нас в тестах или программах - ты получишь бонусы. Но если ошибся ТЫ (а здесь весьма просто ошибиться - одну тильду лишнюю например, поставить или скобку забыть), то у тебя ОТНИМЕМ :-)

3. Из сконвертированных заданий думаю что все, оставшиеся сейчас нерешёнными, неправильные. 
НЕ ВЕРЮ !!!

Перечислю только те, что у меня не прошли:
Схема по программе 81713
Схема по программе 81730
Схема по программе 81731
Схема по программе 81715
Схема по программе 81722  
У каждой могут быть СВОИ КОНКРЕТНЫЕ проблемы - причем, я убежден - в подавляющем большинстве - ТВОИ. Пиши - будем разбираться - если ошибки наши - добавим тебе бонусы, твои - у тебя заберем :-)

Я не нытик, просто я не могу прорешать вс DL в поисках неглючных задач.  
Я и не говорил, что ты нытик, я говорил про текст - НЫТЬЕ. Сейчас ОПИШИ каждую из встреченных проблем и решай "Учимся думать - 2009 (1-5)". Там нет глюков, и много бонусных баллов раздается. И еще там интересно - попробуй - увидишь. Только решать надо ЧЕРЕЗ АВТОВЫДАЧУ заданий.
Mihail Dolinskiy

Topics: 1985
Messages: 47286

My Profile
Мне кажется, обучение состоит в том, чтобы заранее узнать о правилах игры, а не методом тыка выяснять, что и на какие величины можно сдвигать. 
Обучение состоит в том, чтобы научиться решать проблемы, возникающие в жизни - учиться в университете тебе еще полтора года, а работать потом всю жизнь!! И уже не будет лекций, и DL-ки. А будет необходимость до всего доходить своим умом. И метод "тыка" не последнее место будет занимать, если ничего другого не сможешь придумать.

В лекциях я не видел информации о том, что нельзя сдвигать на переменное число бит, догадаться сам не мог - в Винтере-то работает. Это обучение?  
Теперь УЗНАЛ - это и есть обучение. А в лекциях теперь БУДЕТ информация обо всех известных ограничениях.

Это поиск ошибок в HLC-CADе, или в тестах на DL-ке, но никак не обучение. 
Ты можешь это называть как хочешь но ПОИСК ИСТОЧНИКА проблем - это ОБУЧЕНИЕ!!!

Я ничего полезного из знания, что HLCCAD генерирует плохие схемы при сдвиге на переменное число бит, не получил, и в жизни это знание навряд ли будет полезным.  
В жизни будет полезным НАВЫК в решении неожиданно возникающих проблем.
Boris Shrub

Topics: 0
Messages: 29

My Profile
О! Решил! Написал "более оптимально" (хотя, как мне кажется, изначальный вариант моей программы был оптимальнее). Получтлось примерно так:
unsigned __in __bits(64) In;

unsigned __out __bits(1) Out;
void main()
{
  unsigned __bits(8) temp=0;
  unsigned __bits(64) k;
  unsigned __bits(1) t=0;
  k=In;
  for (temp=0;temp<64;temp++) {
    k=k>>1;
	t^=k;
  }
  Out=t;
}

Отлично, правда? Смещение на константу 1. И что же мы видим в протоколе? "Чекер снят по памяти (>268652544 bytes)" НУ ГДЕ Я ТУТ ИСПОЛЬЗОВАЛ СТОЛЬКО??? Короче буду дальше решать, что-то с этой задачей не везёт. Вообще только что задумался: а какой нам смысл сдавать hlccad проекты? Всё равно суть c-mpa - это программа на C, как там генерируется схема, это вообще не наши проблемы. Так почему же не сдавать С-шные исходники?
Mihail Dolinskiy

Topics: 1985
Messages: 47286

My Profile
Смещение на константу 1. И что же мы видим в протоколе? "Чекер снят по памяти (>268652544 bytes)" НУ ГДЕ Я ТУТ ИСПОЛЬЗОВАЛ СТОЛЬКО??? 
Ты не использовал, наверно использовала программа генератор. Почему - не знаю. Игорь Викторович просветит, надеюсь - возможно, ты нашел ему ошибку.

Короче буду дальше решать, что-то с этой задачей не везёт. 
Браво, Борис +5 бонусных баллов ! - так и надо подходить к решению проблем.

Вообще только что задумался: а какой нам смысл сдавать hlccad проекты? Всё равно суть c-mpa - это программа на C, как там генерируется схема, это вообще не наши проблемы. Так почему же не сдавать С-шные исходники?  
Потому что перед Вами стоит задача разработать СХЕМУ. И во всем мире так сейчас задачи ставятся!! Либо разрабатываешь схему, либо пишешь микропрограмму, по которой программа генератор "синтезирует схему". И в каждой такой программе (как вообще наверно в каждой программе) свои "особенности реализации". Так что и Вам, как в реальной жизни, придется ПЕРЕПИСЫВАТЬ программу, пока по ней не сгенерируется достаточно оптимальная схема. У нас это достаточность проверятся автоматически на DL.

Кстати, за каждую найденную у нас в программе генерации схем или Winter-е ошибку, Вы будете получать бонусы, и чем больше ошибок найдете, тем больше бонусов - в геометрической прогрессии - как с пропусками 1, 2, 4, 8 ...

Так что твои труды окупятся, я надеюсь ...

Кстати еще совет
k=k>>1;

По правилам С, корректнее (оптимальнее) это писать так
k>>=1;

Попробуй, вдруг поможет ...
Mihail Dolinskiy

Topics: 1985
Messages: 47286

My Profile
Ну и "вдогонку" в это же время Леша Марченко работает. У него тоже не все сдается сразу но и сдал он много (14 задач):

14.02.2009 18:41:12 14.02.2009 18:41:17 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Ветви 1 все тесты пройдены le.prd DelTA3 at Nit_server
14.02.2009 18:36:19 14.02.2009 18:36:25 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Простая арифметика 100 все тесты пройдены alex.prd DelTA3 at Nit_server
14.02.2009 18:29:33 14.02.2009 18:29:38 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Логика 100 все тесты пройдены Logik.prd DelTA3 at NewIT
14.02.2009 18:28:17 14.02.2009 18:28:26 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Логика 100 все тесты пройдены Logik.prd DelTA3 at Nit3

14.02.2009 18:19:05 14.02.2009 18:19:12 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Логика 0 Ошибка: Несовпадение out_0:1=0 [10 ns] Logik.prd DelTA3 at Nit3
14.02.2009 18:11:15 14.02.2009 18:13:16 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Units 0 Чекер снят по времени (>117 sec) GCSW2002.prd DelTA3 at Nit3
14.02.2009 18:10:04 14.02.2009 18:10:08 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Units 0 Файл GCSW2002.PRD не найден src.mpc DelTA3 at NewIT
14.02.2009 18:07:03 14.02.2009 18:09:02 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Количество бит 0 Чекер снят по времени (>117 sec) bits.prd DelTA3 at Nit3
14.02.2009 18:04:03 14.02.2009 18:06:03 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Количество бит 0 Чекер снят по времени (>117 sec) bits.prd DelTA3 at Nit3
14.02.2009 17:53:20 14.02.2009 17:53:23 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Арифметика 1 Все тесты пройдены (basic) src.mpc DelTA3 at NewIT
14.02.2009 17:39:08 14.02.2009 17:39:14 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Количество единиц 1 Все тесты пройдены (basic) src.mpc DelTA3 at NewIT
14.02.2009 17:37:10 14.02.2009 17:37:15 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Проверка и установка бита 100 Все тесты пройдены (basic) src.mpc DelTA3 at Nit3
14.02.2009 17:34:08 14.02.2009 17:34:14 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Сумма четных членов последовательности 1 Все тесты пройдены (basic) src.mpc DelTA3 at Nit_server

14.02.2009 17:23:11 14.02.2009 17:23:20 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Сравнение двух знаковых чисел 0 [test 7]: Тест не прошел: L dec[1]: 1. src.mpc DelTA3 at Nit3
14.02.2009 17:17:50 14.02.2009 17:17:53 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Модуль 1 Все тесты пройдены (basic) src.mpc DelTA3 at Nit3
14.02.2009 17:16:55 14.02.2009 17:16:56 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Модуль 0 zad.prd - файл с неизвестным расширением. Разрешенное расширение: .mpc zad.prd DelTA3 at Nit3
14.02.2009 17:15:53 14.02.2009 17:15:55 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Модуль 0 [test 1]: Не объявлена переменная reset. src.mpc DelTA3 at Nit3
14.02.2009 17:12:02 14.02.2009 17:12:08 Марченко Алексей Физика ЭВМ. Часть II. - 2009 (X+T)/2 1 Все тесты пройдены (basic) src.mpc DelTA3 at Nit3
14.02.2009 17:09:56 14.02.2009 17:10:00 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Четное/нечетное 1 Все тесты пройдены (basic) src.mpc DelTA3 at Nit_server
14.02.2009 17:07:50 14.02.2009 17:07:53 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Количество нулей 100 Все тесты пройдены (basic) src.mpc DelTA3 at Nit_server

14.02.2009 17:05:30 14.02.2009 17:05:35 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Количество нулей 0 [test 1]: Тест не прошел: OUT dec[1]: 3. src.mpc DelTA3 at Nit3
14.02.2009 17:05:12 14.02.2009 17:05:14 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Количество нулей 0 1.prd - файл с неизвестным расширением. Разрешенное расширение: .mpc 1.prd DelTA3 at NewIT
14.02.2009 17:00:38 14.02.2009 17:00:44 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Функция 100 Все тесты пройдены (basic) src.mpc DelTA3 at Nit_server
14.02.2009 17:00:13 14.02.2009 17:00:16 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Функция 0 prz.prd - файл с неизвестным расширением. Разрешенное расширение: .mpc prz.prd DelTA3 at Nit_server
14.02.2009 16:55:36 14.02.2009 16:55:40 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Инверсия 100 Все тесты пройдены (basic) src.mpc DelTA3 at Nit3
14.02.2009 16:55:04 14.02.2009 16:55:07 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Инверсия 0 1.prd - файл с неизвестным расширением. Разрешенное расширение: .mpc 1.prd DelTA3 at NewIT
14.02.2009 16:50:34 14.02.2009 16:50:35 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Arifma 0 Arifma.prd - файл с неизвестным расширением. Разрешенное расширение: .mpc Arifma.prd DelTA3 at NewIT
14.02.2009 16:39:35 14.02.2009 16:45:30 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Четное/нечетное количество бит 0 Чекер снят по времени (>160 sec) 80574.prd DelTA3 at Nit_server
14.02.2009 16:41:47 14.02.2009 16:43:53 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Четное/нечетное количество бит 0 Чекер снят по времени (>117 sec) 80574.prd DelTA3 at Nit3
14.02.2009 15:59:13 14.02.2009 16:00:29 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Четное/нечетное количество бит 0 Чекер снят по времени (>69 sec) 80574.prd DelTA3 at NewIT
14.02.2009 15:56:35 14.02.2009 15:57:47 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Четное/нечетное количество бит 0 Чекер снят по времени (>69 sec) 80574.prd DelTA3 at NewIT
14.02.2009 15:37:11 14.02.2009 15:37:16 Марченко Алексей Физика ЭВМ. Часть II. - 2009 Схема по программе 81501 0 Ошибка: Несовпадение res:0=1 [1 ns]
Boris Shrub

Topics: 0
Messages: 29

My Profile
Продолжим:
Проектирование цифровых устройств\Вычислить выражение\6 - "Инкрементор на 3
Мой код:
unsigned __in __bits(4) IN_1;
unsigned __out __bits(4) OUT_1;

void main()
{
  OUT_1=IN_1+3;
}

Тесты не проходят.
Mihail Dolinskiy

Topics: 1985
Messages: 47286

My Profile
Про это уже ПИСАЛИ в форуме - ответа пока не было.
Надо и читать в форуме. Не только писать.
Могу посоветовать сначала присвоить входное значение внутренней переменной, потом вычислить результат, потом выходной переменной присвоить это результат. А еще изменить тип "unsigned - int". Но окончательный "вердикт" ждем от Игоря Викторовича.
Dmitriy Moiseenko

Topics: 0
Messages: 10

My Profile
Наткнулся на ошибку в флеш-лекциях по системам счисления, а именно:
Экзамен\Индивидуальные задания\Флеш-задания\Флеш-лекции\5 - "Перевод чисел из десятичной в шестнадцатеричную систему. Проверочное задание"
Первые четыре задания в тесте выполняются очень легко, а вот пятое - это что-то с чем-то...
Не смотря на название темы "Перевод чисел из десятичной в шестнадцатеричную систему" условие требует перевести число 1376 из десятичной в двоичную. Естественно, такой перевод даёт лишь неправильный результат. Далее, путём проб и ошибок, оказывается что требовалось перевести число не 1376, а 2376 и не в двоичную, а в 16-ую систему. После записи результата 948, программа выдаёт следующее: "Правильно!!! Нажмите кнопку отправить, которая находится внизу". После нажатия заветной кнопки и просмотра протокола можно узнать, что пройдены только 5 из 6 тестов. Вот так.
Mihail Dolinskiy

Topics: 1985
Messages: 47286

My Profile
Спасибо. Сообщим автору задания и он исправит.
Диме +3 бонусных балла.
Boris Shrub

Topics: 0
Messages: 29

My Profile
Задача
Индивидуальные задания\Проектирование цифровых устройств\Логические элементы\9 - "Подпоследовательность"
Пишу
unsigned __in __bits(8) In;
unsigned __in __bits(4) S;

unsigned __out __bits(1) Out;
void main()
{
  unsigned __bits(8) temp;
  unsigned __bits(4) tmp;
  unsigned __bits(3) i;
  unsigned __bits(1) t=0;
  temp=In;
  for (i=0;i<5;i++)
    {
	  tmp=temp;
	  if (S==tmp){
	    t=1;
		break;
		}
	  temp>>=1;
	}
  Out=t;
}

Пишет ошибку, несовпадение чего-то там. Прогнал все тесты в Винтере - у меня всё правильно.
Boris Shrub

Topics: 0
Messages: 29

My Profile
Либо я что-то не так понимаю, либо просто странная задача.
Проектирование цифровых устройств\Непростая арифметика\10 - "Максимальное из 3-х чисел"
Смысл задачи такой:
На вход подаются 3 целых числа в диапазоне от 0 до 31. Определить максимальное число.

Пример1:
A: 0
B: 14
C: 13
A0: 0
B0: 1
C0: 0
EQ: 0

Пример2:
A: 3
B: 25
C: 25
A0: 0
B0: 0
C0: 0
EQ: 1
 

То есть надо найти максимальное, а если его нет, то есть наличествует 2 или более одинаково максимальных, то вывести единицу в EQ. А почему тогда в тестах есть вот такой:
A=25,10 after 1 ps
B=10,10
C=10,10
assert A0=0,2 after 1000 ps
assert B0=0,2 ;after 10 ps
assert C0=0,2 ;after 10 ps
assert EQ=1,2 ;after 10 ps
 

Это как понимать? 25 максимальное, по смыслу задачи оно - максимально из трёх. А по этому тесту получается, что если ЛЮБЫЕ два числа из исходных равны, то EQ=1. Нелогично как-то.
Boris Shrub

Topics: 0
Messages: 29

My Profile
Дальше. Задача Проектирование цифровых устройств\Обработка битов\24 - "Равные биты"
Пишу код:
unsigned __in __bits(5) A;
unsigned __in __bits(8) in_0;
unsigned __in __bits(8) in_1;
unsigned __in __bits(3) in_2;

unsigned __out __bits(8) out;

void main()
{
  unsigned __bits(8) temp;
  if ((in_0&(1<<in_2))==(in_1&(1<<in_2)))
    temp=~in_0;
  else temp=~in_1;
  out=temp;
}

Не проходит какой-то тест. Прохожу в отладке в Винтере - всё идеально.
Mihail Dolinskiy

Topics: 1985
Messages: 47286

My Profile
Не проходит какой-то тест. Прохожу в отладке в Винтере - всё идеально. 
В таких случаях нужно начинать с того, что ПЕРЕПРИСВОИТЬ контакты внутренним переменным. Сообщи результат.
Vyacheslav Romanenko

Topics: 0
Messages: 13

My Profile
В задаче Экзамен\Индивидуальные задания\Проектирование цифровых устройств\Комбинационные схемы\6 - "Цифрал" При попытке взят тест пишет

Тест не найден 
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Борис Шруб:

Дальше. Задача Проектирование цифровых устройств\Обработка битов\24 - "Равные биты"
Пишу код:
unsigned __in __bits(5) A;
unsigned __in __bits(8) in_0;
unsigned __in __bits(8) in_1;
unsigned __in __bits(3) in_2;

unsigned __out __bits(8) out;

void main()
{
  unsigned __bits(8) temp;
  if ((in_0&(1<<in_2))==(in_1&(1<<in_2)))
    temp=~in_0;
  else temp=~in_1;
  out=temp;
}

Не проходит какой-то тест. Прохожу в отладке в Винтере - всё идеально. 

Здесь скорее всего какие-то ошибки в генераторе схем. Я как раз сейчас разбираюсь с этим.
 
Forum Index ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, 4, 5, ... 9, 10, 11
Time:0,053