[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, 4, 5, ... 24, 25, 26
Автор Сообщение
Галина Юдченко

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

Мой профиль
Я написала решение задачи по моему она правильно решена,но в протоколе пишет,что 7.2 13:26 Ошибка: Несовпадение y1:0=1 [100 ps] ,но когда я проверяю эту ошибку,то ответ выдаёт в Winter правильно ... и все тесты проходят (Задача:Подготовка к контролю практики\К2. Подводящие упражнения\2\5 - "Вакхабит" 52983)

unsigned __in __bits(1) x1;
unsigned __in __bits(1) x2;
unsigned __in __bits(1) x3;
unsigned __in __bits(1) x4;

unsigned __out __bits(1) y1;
unsigned __out __bits(1) y2;
unsigned __out __bits(1) y3;
unsigned __out __bits(1) y4;

void main()
{
y4 = (x3*(~x1)*(~x2)*(~x4))|(x2*(~x1)*(~x3)*(~x4))|(x1*x2*(~x3)*x4)|(x1*(~x2)*x3*x4);
y3 = x1*x3|x1*x2|x2*x3;
y2 = (~x4)*x1|x1*x3;
y1 = (~x4)|x3|((~x1)*x2)|(x1*(~x2));
}
Ян Ганькин

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

Мой профиль
Добрый день.
У меня сложилась довольно странная ситуация из которой хотелось бы найти выход.
Дело собственно в том, что написанная мной программа на wintore, при проверке через F7 показывает правильные результаты, причем на все тесты, а при проверки там ( в смысле по ту сторону компьютера:)) показывает следующее:
Ошибка: Несовпадение out:00000110=0011 [5 ns]
. Однако как было сказано выше проверку в Wintore прошла успешна. Что же делать, точнее в чем ошибка?

unsigned __in __bits(8) in;
unsigned __out __bits(8) out;

void main ()

{
unsigned __bits(8)	t=0	;

  while (t*t != in)
   {
     t++;
   };
  out=t;
}

Максим Аксютик

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

Мой профиль
http://dl.gsu.by/NForum/posts/topicshow/691.dl?postid=3585#3585
Игорь Коршунов

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

Мой профиль


Галина Юдченко:

Я написала решение задачи по моему она правильно решена,но в протоколе пишет,что 7.2 13:26 Ошибка: Несовпадение y1:0=1 [100 ps] ,но когда я проверяю эту ошибку,то ответ выдаёт в Winter правильно ... и все тесты проходят 


Сперва нужно заменить умножение "*" на логическое И "&". Затем нужно смотреть успевает ли HLCCAD вычислить все выражения за нужное время.
Игорь Коршунов

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

Мой профиль


Ян Ганькин:

Добрый день.
У меня сложилась довольно странная ситуация из которой хотелось бы найти выход.
Дело собственно в том, что написанная мной программа на wintore, при проверке через F7 показывает правильные результаты, причем на все тесты, а при проверки там ( в смысле по ту сторону компьютера) показывает следующее:
Ошибка: Несовпадение out:00000110=0011 [5 ns]
. Однако как было сказано выше проверку в Wintore прошла успешна. Что же делать, точнее в чем ошибка?

unsigned __in __bits(8) in;
unsigned __out __bits(8) out;

void main ()

{
unsigned __bits(8)	t=0	;

  while (t*t != in)
   {
     t++;
   };
  out=t;
}

 

Скорее всего тут дело в том, что при тестировании схем значения на входной контакт могут быть поданы в любой момент времени. Допустим, если t == 6, и в этот момент на вход подают in = 9 - программа зацикливается.
Чтобы избежать таких проблем значения входных контактов можно сохранить во временные переменные и работать только с ними.
Игорь Коршунов

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

Мой профиль


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

Саша Громыко написал

unsigned __in __bits(1) x1;
unsigned __in __bits(1) x2;
unsigned __in __bits(1) x3;
unsigned __in __bits(1) x4;

unsigned __out __bits(1) y1;
unsigned __out __bits(1) y2;
unsigned __out __bits(1) y3;
unsigned __out __bits(1) y4;

void main() {
	     if (x1 == 0 && x2 == 0 && x3 == 0 && x4 == 0) { y1 = 0; y2 = 0; y3 = 0; y4 = 1; }
	else if (x1 == 0 && x2 == 0 && x3 == 0 && x4 == 1) { y1 = 0; y2 = 0; y3 = 1; y4 = 0; }
	else if (x1 == 0 && x2 == 0 && x3 == 1 && x4 == 0) { y1 = 0; y2 = 0; y3 = 1; y4 = 1; }
	else if (x1 == 0 && x2 == 0 && x3 == 1 && x4 == 1) { y1 = 0; y2 = 1; y3 = 0; y4 = 0; }
	else if (x1 == 0 && x2 == 1 && x3 == 0 && x4 == 0) { y1 = 0; y2 = 1; y3 = 0; y4 = 1; }
	else if (x1 == 0 && x2 == 1 && x3 == 0 && x4 == 1) { y1 = 0; y2 = 1; y3 = 1; y4 = 0; }
	else if (x1 == 0 && x2 == 1 && x3 == 1 && x4 == 0) { y1 = 0; y2 = 1; y3 = 1; y4 = 1; }
	else if (x1 == 0 && x2 == 1 && x3 == 1 && x4 == 1) { y1 = 1; y2 = 0; y3 = 0; y4 = 0; }
	else if (x1 == 1 && x2 == 0 && x3 == 0 && x4 == 0) { y1 = 1; y2 = 0; y3 = 0; y4 = 1; }
	else if (x1 == 1 && x2 == 0 && x3 == 0 && x4 == 1) { y1 = 1; y2 = 0; y3 = 1; y4 = 0; }
	else if (x1 == 1 && x2 == 0 && x3 == 1 && x4 == 0) { y1 = 1; y2 = 0; y3 = 1; y4 = 1; }
	else if (x1 == 1 && x2 == 0 && x3 == 1 && x4 == 1) { y1 = 1; y2 = 1; y3 = 0; y4 = 0; }
	else if (x1 == 1 && x2 == 1 && x3 == 0 && x4 == 0) { y1 = 1; y2 = 1; y3 = 0; y4 = 1; }
	else if (x1 == 1 && x2 == 1 && x3 == 0 && x4 == 1) { y1 = 1; y2 = 1; y3 = 1; y4 = 0; }
	else if (x1 == 1 && x2 == 1 && x3 == 1 && x4 == 0) { y1 = 1; y2 = 1; y3 = 1; y4 = 1; }
	else if (x1 == 1 && x2 == 1 && x3 == 1 && x4 == 1) { y1 = 0; y2 = 0; y3 = 0; y4 = 0; }
}


При переводе такого решения в схему мне выдается запись в протоколе:
6.2 10:03 2. Котенок 0 / 100 Чекер снят по времени (>117 sec) Arifm2.prd DelTA3 at Nit3 HLCCAD project  


На мой взгляд, такое решение по времени сниматься не может. 

Снимается не решение, а HLCCAD, который сгенерированную схему с множеством условий компилирует слишком долго.
Лучше использовать условия такого вида:
if (y1 == 0) {if (y2 == 0) {...} else {...}}
else {...}
Игорь Коршунов

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

Мой профиль


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

Катя Калачева написала такое решение задачи 8. Антисумматор.
Нам показалось, что программа симулируется с ошибкой - обнуляется In_1 перед первым else 

Тут дело в том, что после ввода нового значения в окно "переменные" его необходимо подтвердить нажатием 'enter'. После этого новое значение должно стать красным.
Игорь Коршунов

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

Мой профиль


Слава Коноплев:

Зачет\Индивидуальные задания\Проектирование цифровых устройств\Вычислить выражение\6 - "Инкрементор на 3" 41247 Ходорич Дмитрий, ПОИТ-36, апрель 2006 Баллов: 300

В винтере все тесты проходят.
В HLCCAD'e проверить не смог. В половине случаев просто Программа не отвечает, в другой половине значения на выходе отличались от правильного ответа.
При проверке выдается ошибка.

unsigned __in __bits(4) IN_1;
unsigned __out __bits(4) OUT_1;


void main()
{
	OUT_1 = IN_1+3;

}


Ошибка: Несовпадение OUT_1:0000=0011 [11 ps]  

Исправил тесты - задачу можно пересдать.
Игорь Коршунов

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

Мой профиль


Слава Коноплев:

unsigned __bits(5) t;
unsigned __bits(3) c1=3;
...

void main()
{unsigned __bits(3) c2=3;
 ....
}


В винтере в списке переменных будут видны только t и с1. c2 не видно. При добавлении вручную окошко с переменной отображается, но изменение переменной там не отражаются. Также при наведении мышкой на переменную в процессе работы программы на с2 пишет неизвестный идентификатор. При переносе описания из функции в описание глобальных переменных, все становится нормально 

Чтобы переменные были видны нужно, чтобы они были в области видимости исполняемой в данный момент строки (т.е. можно стать на строку и нажать F4).
Максим Аксютик

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=332707&cid=597

int __in __bits(16) a;
int	__out __bits(16) res;
void main()	{
	int aa=a;
    int a1;
    int a2;
	if (aa==1 || aa==2)res=1;
	  else{
	    a1=1;
	    res=1;
	    aa=aa-2;
	    while(aa){
	      a2=res;
	      res=res+a1;
	      a1=a2;
	      aa=aa-1;}}
}

из этого кода делаю схему ... последний тест не проходит (при a=8 должно быть res=21) ... в Winter получается 21, а схема дает 89 при тестировании
Дмитрий Глусцов

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

Мой профиль
http://dl/task.jsp?nid=323081&cid=597
В Wintere мое решение проходит все тесты,
а сгенерированная схема не проходит.

int __bits(8) n;
int __bits(8) a[36];
int __bits(8) t;
void main()	{
 int j,i,s=0,s1,max1,max;
 max=a[0];
 for(i=0;i<n;i++)
 {
  s1=0;
  max1=a[i];
  for(j=0;j<n;j++)
   {
	if (max1<a[n*j+i]) max1=a[n*j+i];
	s1=s1+a[n*j+i];
   }
  if (max<max1)	{max=max1; s=s1;}
 }
 t=s;
}

Дмитрий Глусцов

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

Мой профиль
http://dl/task.jsp?nid=323177&cid=597
Выдает:
[255d=11111111b]: Тест не прошел: str str[8]:11111111.
Хотя программа тоже заполняет массив выходной 1 или '1' (пробовал 2 варианта). Ответы с тестами совпадают, а выдает ошибку.

unsigned __bits(32) d;
int str[8];

void main()
{

unsigned int i,k=128;
 for(i=0;i<8;i++)
 {
  if((d-k)>=0) 
    {
     str[i]=1; d=d-k;
    } 
  else str[i]=0;
  k=k/2;
 }
}

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

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

Мой профиль
Тег code вставляй, чтобы было так:

http://dl/task.jsp?nid=323177&cid=597
Выдает:
[255d=11111111b]: Тест не прошел: str str[8]:11111111.
Хотя программа тоже заполняет массив выходной 1 или '1' (пробовал 2 варианта). Ответы с тестами совпадают, а выдает ошибку.

unsigned __bits(32) d;
int str[8];

void main()
{

unsigned int i,k=128;
 for(i=0;i<8;i++)
 {
  if((d-k)>=0) 
    {
     str[i]=1; d=d-k;
    } 
  else str[i]=0;
  k=k/2;
 }
}

А то я второй раз вместо тебя это делаю
Максим Аксютик

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=332558&cid=597

unsigned __in __bits(32) A;
unsigned __out __bits(8) Res;
void main(void)
{
 int i;
 for(i=2;i<A/2;i++) if((A%i)==0) i=A;
 if(i>(A-1)) 
  Res=0;
   else Res=1;
}


в Винтере все тесты проходят ... а вот схема не проходит
Михаил Долинский

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

Мой профиль
А ПЕРЕПРИСВОИТЬ входные (A) рабочим пробовал?
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, 4, 5, ... 24, 25, 26
Time:0,043