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

Topics: 1985
Messages: 47296

My Profile


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


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

Задача из контрольной http://dl.gsu.by/task.jsp?nid=914942&cid=813.

Пишет,что тест не проходит. Хотя в Винтере прогнал - всё нормально.

int mas[5];
int __out __bits(8) srd;


void main(){
	int min = mas[0], max = mas[0];

	for(int i = 1; i < 5; i++){
		if(mas[i] > max)
			max = mas[i];
		if(mas[i] < min)
			min = mas[i];
	}

	srd = (max+min)/2;
}
 

Неправильно объявлен входной массив.
Правильно так:
int __bits(8) mas[5]; 
Mihail Dolinskiy (Online)

Topics: 1985
Messages: 47296

My Profile


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


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

В задаче http://dl.gsu.by/task.jsp?nid=918597&cid=813 пишет, что не найден контакт x. 

int __bits(16) x;
int __bits(16) y;
int __bits(16) res;

void main() {
	if(x*y>=80)
		res = 5*y-4*x;
	else
		res = 8*y+10*x;
}

В программе не объявлены входные/выходные контакты.
Должно быть так:
int __in __bits(16) x;
int __in __bits(16) y;
int __out __bits(16) res;
 
Mihail Dolinskiy (Online)

Topics: 1985
Messages: 47296

My Profile


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


Михаил Пасенко:

Индивидуальные задания\Проектирование цифровых устройств\Вычислить выражение\26 - "Cумма" 44739

Программа не проходит тесты, а вручную всё нормально 

unsigned __in __bits(8) x;
unsigned __out __bits(8) y;
void main() {
	if (((x&128 == 128) && (x&1 == 1))) {
		y=(~x);
	} else {
		y=x;
	}
}

В программе неправильно записано условное выражение, т.к. == выполняется раньше чем &.
Программа будет инвертировать все числа кроме нуля. 
Mihail Dolinskiy (Online)

Topics: 1985
Messages: 47296

My Profile


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


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

Тоже самое. http://dl.gsu.by/task.jsp?nid=918468&cid=813

Локально тесты проходят. 

На данный момент оператор return завершает работу схемы. Чтобы проходили последующие тесты нужно исправить программу так, чтобы в ней не было этого оператора. 
Mihail Dolinskiy (Online)

Topics: 1985
Messages: 47296

My Profile


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


Иван Огнев:


Экзамен\Индивидуальные задания\Сконвертированные задания на проектирование по программе\Делители\6 - "Схема по программе 81523" 81523 TaskConverter 2009 Февраль 01
Неизвестна размерность входных и выходных параметров 

По умолчанию тип int имеет разрядность 32 бита. 
Evgeniy Kartavyh

Topics: 2
Messages: 49

My Profile
Экзамен\Контроль практики\Проектирование\3\HLCCAD\5 - "Сравнение двух сумм" 41751 Семченко Андрей, ПМ-44, май 2006
http://dl.gsu.by/task.jsp?nid=997849&cid=836
unsigned __in __bits(4) a_1 = 8;
unsigned __in __bits(4) a_2 = 8;
unsigned __in __bits(1) a_3 = 0;
unsigned __in __bits(4) b_1 = 8;
unsigned __in __bits(4) b_2 = 9;
unsigned __in __bits(1) b_3 = 0;
unsigned __out __bits(1) cmp1 = 0;
unsigned __out __bits(1) cmp2 = 0;
unsigned __out __bits(1) cmp3 = 0;

void main() {
    unsigned sum1 = a_1 + a_2 + a_3;
    unsigned sum2 = b_1 + b_2 + b_3;
    if (sum1 > sum2)
        cmp1 = 1;
    else if (sum1 == sum2)
        cmp2 = 1;
    else
        cmp3 = 1;

}

В Си решение выдаёт правильный ответ, когда перевожу схему в HLCCAD, сгенерированная схема ответ выдаёт неправильный.
______________________
xxx: I just saw a red-black squirrel!
yyy: Was it in a red-black tree?
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Евгений Картавых:

Экзамен\Контроль практики\Проектирование\3\HLCCAD\5 - "Сравнение двух сумм" 41751 Семченко Андрей, ПМ-44, май 2006
http://dl.gsu.by/task.jsp?nid=997849&cid=836
unsigned __in __bits(4) a_1 = 8;
unsigned __in __bits(4) a_2 = 8;
unsigned __in __bits(1) a_3 = 0;
unsigned __in __bits(4) b_1 = 8;
unsigned __in __bits(4) b_2 = 9;
unsigned __in __bits(1) b_3 = 0;
unsigned __out __bits(1) cmp1 = 0;
unsigned __out __bits(1) cmp2 = 0;
unsigned __out __bits(1) cmp3 = 0;

void main() {
    unsigned sum1 = a_1 + a_2 + a_3;
    unsigned sum2 = b_1 + b_2 + b_3;
    if (sum1 > sum2)
        cmp1 = 1;
    else if (sum1 == sum2)
        cmp2 = 1;
    else
        cmp3 = 1;

}

В Си решение выдаёт правильный ответ, когда перевожу схему в HLCCAD, сгенерированная схема ответ выдаёт неправильный. 

В программе прописана инициализация входных контактов.
Maksim Puzikov

Topics: 0
Messages: 31

My Profile
Экзамен\Контроль практики\Проектирование\4\Проектирование в HLCCAD\8 - "Четвёрки" 42928 Родионов Кирилл, ПОИТ-27, апрель 2006

http://dl.gsu.by/task.jsp?nid=997879&cid=836

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

unsigned __out __bits(3) OUT_0;

void main()
  {
    unsigned __bits(3) kol=0;
    unsigned __bits(1) in0;
    unsigned __bits(1) in01;
    unsigned __bits(1) in1;
    unsigned __bits(1) in11;
    for (int i=0;i<7;i++)
      {
       in0=IN_0>>i;
       in01=IN_0>>i+1;
       in1=IN_1>>i;
       in11=IN_1>>i+1;
       if (in0==1&&in01==1&&in1==0&&in11==0)
	 kol++;
      }
   OUT_0=kol;
  }

В Си решение выдаёт правильный ответ, когда перевожу схему в HLCCAD, сгенерированная схема ответ выдаёт неправильный.
Maksim Puzikov

Topics: 0
Messages: 31

My Profile


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

Если возникают какие-то проблемы с использованием C-MPA, то спрашивайте здесь.

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

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


В Winter тесты с HLCCAD не подошли
ничего не произошло когда загрузил эти тесты в Winter
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Максим Пузиков:


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

Если возникают какие-то проблемы с использованием C-MPA, то спрашивайте здесь.

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

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


В Winter тесты с HLCCAD не подошли
ничего не произошло когда загрузил эти тесты в Winter 

Тесты нужно переделать в формат пригодный для WInter.
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Максим Пузиков:

Экзамен\Контроль практики\Проектирование\4\Проектирование в HLCCAD\8 - "Четвёрки" 42928 Родионов Кирилл, ПОИТ-27, апрель 2006

http://dl.gsu.by/task.jsp?nid=997879&cid=836

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

unsigned __out __bits(3) OUT_0;

void main()
  {
    unsigned __bits(3) kol=0;
    unsigned __bits(1) in0;
    unsigned __bits(1) in01;
    unsigned __bits(1) in1;
    unsigned __bits(1) in11;
    for (int i=0;i<7;i++)
      {
       in0=IN_0>>i;
       in01=IN_0>>i+1;
       in1=IN_1>>i;
       in11=IN_1>>i+1;
       if (in0==1&&in01==1&&in1==0&&in11==0)
	 kol++;
      }
   OUT_0=kol;
  }

В Си решение выдаёт правильный ответ, когда перевожу схему в HLCCAD, сгенерированная схема ответ выдаёт неправильный.  

Схема не успевает отработать т.к. программа составлена неэффективно. Нужно уменьшить число сдвигов и сравнений.
Evgeniy Kartavyh

Topics: 2
Messages: 49

My Profile
Дзунович, Картавых ПО-31
unsigned __in __bits(72) a;
unsigned __in __bits(24) k;
unsigned __in __bits(24) x;
unsigned __out __bits(24) y;

void main() {
	unsigned __bits(8) A[9];
	for (int i = 0; i < 9; i++) {
		A[i] = (a >> i*8) && 0xF;
	}
	unsigned __bits(8) K[3];
	for (i = 0; i < 3; i++) {
		K[i] = (k >> i*8) && 0xF;
	}
	unsigned __bits(8) X[3];
	for (i = 0; i < 3; i++) {
		X[i] = (x >> i*8) && 0xF;
	}
	unsigned __bits(8) Y[3];
	for (i = 0; i < 3; i++) {
		Y[i] = K[i];
		for (int j = 0; j < 3; j++) {
			Y[i] += X[i*3 + j] * A[i*3 + j];
		}
	}
	y =	Y[0] + (Y[1] << 8) + (Y[2] << 16);
}


Винтер при попытке компиляции этого кода вылетает. Когда генерируем схему из кода, HLCCAD вылетает тоже.
______________________
xxx: I just saw a red-black squirrel!
yyy: Was it in a red-black tree?
Igor Korshunov

Topics: 7
Messages: 2186

My Profile


Евгений Картавых:

Дзунович, Картавых ПО-31
unsigned __in __bits(72) a;
unsigned __in __bits(24) k;
unsigned __in __bits(24) x;
unsigned __out __bits(24) y;

void main() {
	unsigned __bits(8) A[9];
	for (int i = 0; i < 9; i++) {
		A[i] = (a >> i*8) && 0xF;
	}
	unsigned __bits(8) K[3];
	for (i = 0; i < 3; i++) {
		K[i] = (k >> i*8) && 0xF;
	}
	unsigned __bits(8) X[3];
	for (i = 0; i < 3; i++) {
		X[i] = (x >> i*8) && 0xF;
	}
	unsigned __bits(8) Y[3];
	for (i = 0; i < 3; i++) {
		Y[i] = K[i];
		for (int j = 0; j < 3; j++) {
			Y[i] += X[i*3 + j] * A[i*3 + j];
		}
	}
	y =	Y[0] + (Y[1] << 8) + (Y[2] << 16);
}


Винтер при попытке компиляции этого кода вылетает. Когда генерируем схему из кода, HLCCAD вылетает тоже. 

Компилятор генерирует некорректный код. Пока ошибка не исправлена можно вместо
	y =	Y[0] + (Y[1] << 8) + (Y[2] << 16);

писать так:
	unsigned __bits(8) y1 = Y[1];
	unsigned __bits(8) y2 = Y[2];
	y = Y[0] + (y1 << 8) + (y2 << 16);

Но схема по такой программе синтезироваться не будет, т.к. используются массивы.
Vasiliy Pispanen

Topics: 0
Messages: 76

My Profile
Добрый день

C-MPA, простая программа по задаче http://dl.gsu.by/task.jsp?nid=1110210&cid=860
int __in __bits(16) a;
int __in __bits(16) b;
int __in __bits(8) c;
int __in __bits(8) d;

unsigned __out __bits(16) RES;

void main()
{
    if (a*d<0){
        RES=a/b+c-d*a;
    } else {
        RES=b-(c+a/d)*b;
    }

}

Программа проходит тесты, но в Winter не компилируется:
[Ошибка]2.mpc: Функция main() не определена
Mihail Dolinskiy (Online)

Topics: 1985
Messages: 47296

My Profile
Вася ты забыл написать что под Linux работаешь - возможно в этом и проблема.
 
Forum Index ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 7, 8, 9, 10, 11, ... 24, 25, 26
Time:0,048