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

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

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

Кракозябры вместо русских букв в Windows 10
Как изменить шрифт в редакторе Winter +1
Как добавить в редактор Ctrl+C, Ctrl+V

Работа в Linux

Работа с битами
Решение задачи с памятью +1 +2 +3 +4 +5 +6
Сохраняйте значения входных при решении задач с памятью +1
Контакты большой размерности +1
Инициализация массива значениями переменных
Отладка программ с массивами
Видео - отладка программ условного вычисления выражений

Инициализация массива символов +1 +2
Массив символов(строка) как входной параметр
Нет символа # в конце выходной строки

Максимальный размер массива
Объявление двумерного массива
Индекс массива должен быть целочисленной переменной
Переполнение при вычислении промежуточных результатов +1 +2
Приоритеты операций & и ==
Использовать ! а не ~ для отрицания битовых переменных
Не объявлена переменная a (отправлена не та программа)
Переполнение промежуточных вычислений
По таблицам истинности
Сортирующие сети

"Решение проходит в отладчике, но не проходит тестирование":

Возьмите с DL и подключите тесты!
Скорей всего, Вы совершили одну из следующих ошибок:

0. Присваивание входным переменным значений +1 +2

1. НЕсоответствие названия выходной переменной условию задачи.

2. НЕсоответствие размерности элементов массива условиям задачи.
http://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=44129#44129
http://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=45926#45926

3. Неверный тип переменных (использовался int вместо unsigned)
http://dl.gsu.by/NForum/posts/topicshow/1792.dl?postid=46192#46192

4. Неинициализированная переменная
http://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=55874#55874

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

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

Это позволит Вам диагностировать ситуацию:

Перечень возможных причин ситуации
1. Время, установленное в тесте для HLCCAD, недостаточно для выполнения Вашей микропрограммы.
- по истории изменения значений во время моделирования можно установить, в какое время на выходах Вашей схемы появляются правильные значения. И сравнить его со временем контроля этих же значений в тесте.

Если возможно оптимизировать программу, сделайте это
http://dl/NForum/posts/topicshow/46.dl?postid=98943#98943
http://dl.gsu.by/NForum/posts/topicshow/1642.dl?postid=98586#98586
https://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=105387#105387

Если Вы считаете невозможным написать программу, работающую быстрее - сообщите нам
(в теме "Ошибка в установке задачи - 201х")
или Вам подскажут как это сделать
или время на тест будет увеличено

2. В программе используются не синтезируемые (на текущий момент) конструкции:
- массивы
об этом выдается ПРЕДУПРЕЖДЕНИЕ во время синтеза - будьте внимательны!
Синтезируемые конструкции

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

4. Неоднократное занесение значений на выходные контакты.
http://dl/NForum/posts/topicshow/46.dl?postid=224#224
http://dl/NForum/posts/topicshow/46.dl?postid=1937#1937
http://dl/NForum/posts/topicshow/46.dl?postid=3550#3550
http://dl/NForum/posts/topicshow/46.dl?postid=34228#34228
http://dl/NForum/posts/topicshow/46.dl?postid=44944#44944
http://dl/NForum/posts/topicshow/46.dl?postid=77048#77048
http://dl/NForum/posts/topicshow/46.dl?postid=92167#92167
http://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=93833#93833
http://dl/NForum/posts/topicshow/46.dl?postid=100583#100583
http://dl/NForum/posts/topicshow/46.dl?postid=100585#100585

Присваивание значений на входных контактах.
http://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=98584#98584

5. Асинхронная работа с входными контактами
http://dl/NForum/posts/topicshow/46.dl?postid=3646#3646

6. Ошибка в тестах
- если Вы это обнаружите и докажете, мы исправим

7. Ошибка в Вашей программе
Да, бывает и такое
Пользуйтесь отладчиком и режимами автоматического прогона ВСЕХ тестов!

8. Объявление внутренних переменных контактами
http://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=97948#97948


9. В WINTER отлаживается одна программа, а схема генерируется по другой (например не сохранив программу)
http://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=97949#97949
Игорь Коршунов

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

Мой профиль
Ограничения реализации
Рекурсивные функции не поддерживаются
Многократный вызов функции в одном выражении не поддерживается +1
#define max(a, b) (((a) < (b)) ? (a) : (b)) - так нельзя
Ошибка в сдвиге на 0 битов

Unsupported node types
Нельзя складывать указатели на строки
Неправильная инициализация строки
Неправильная константа символа
Присваивание строки массиву ВНЕ ОБЪЯВЛЕНИЯ МАССИВА +1

Внутренняя ошибка WChecker: не удается открыть report.txt
Объявлять массивы не более 500 байт



Например, тестирующая система выдает такие ошибки:

"Device ... not found" - Имя устройства не соответствует условиям задачи (например, "Logic.mpa" вместо "Logic"). Переименовать устройство можно в инспекторе проектов (кликнув один раз по имени устройства).

"Incorrect model type" - Устройство имеет неправильный тип модели. Исправлять это нужно так: в редакторе устройств на закладке "Корпус", необходимо нажать кнопку "Тип модели..." и в появившемся диалоговом окне установить флажок "схема".

Нерешенные (пока) проблемы
Чекер снят по [абсолютному] времени
Мультиплексор 256 -> 1 (из 32->1) 0 / 1 Чекер снят по времени (>69 sec) nina.prd
Объявлен слишком большой массив
Внутренняя ошибка компилятора - Unsupported node type
Неоптимальная генерация условных вычислений
Секретный тест не прошел - Winter
Не пройден секретный тест - HLCCAD
Евгений Гацуков

Темы: 1
Сообщений: 6

Мой профиль
Даже и не знаю, как правильно задать вопрос... Вообщем, пробую отсылать задачу (даже с исходным примером, который к ней прилагается), выдает "Error: Not equal OUT_0:0=1 [2 ns]". Я так понимаю, что это не правильный ответ... В чем может быть причина?
И еще, иногда, при попытке Make Scheme вылетает ошибка "Can't get scheme (source corpus)", хотя схема вроде как создается... А вот уже после того, как к схеме прикрутить все контакты и снова сделать Make Scheme, все проходит без ошибок. Может быть ответ на предыдущий вопрос вытекает из этого?...
Евгений Гацуков

Темы: 1
Сообщений: 6

Мой профиль
Хм... тоже самое сделал в университете, тоже была ошибка со схемой, НО "All tests passed". Видно дома что-то с дистрибутивом HLCCAD... будем разбираться...
Игорь Коршунов

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

Мой профиль
Видимо ты у себя дома изменил проект стандартных устройств (файл standard.prj). Можешь забрать его из SPRL.

Перед первым построением схемы (Make Scheme) необходимо сохранить устройство (кнопка с дискетой) и все будет работать правильно.
Игорь Коршунов

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

Мой профиль
Часто делают следующую ошибку: выводят результаты промежуточнх вычислений на выходные контакты.
Например, нужно возвести X в степень Y.

unsigned __in __bits(8) X;
unsigned __in __bits(8) Y;
unsigned __oout __bits(8) R;
void main()
{
    R = 1;
    for (unsigned i = 0; i < Y; i++) R *= X;
}

Такое устройство будет выдавать на выход R: 1, X, X^2, ..., X^Y, 1, X, X^2, ...
Таким образом значение на выходном контакте будет постоянно меняться. И соответственно чаще всего будет неверным.

Правильно делать так:
unsigned __in __bits(8) X;
unsigned __in __bits(8) Y;
unsigned __oout __bits(8) R;
void main()
{
    unsigned __bits(8) t = 1;
    for (unsigned i = 0; i < Y; i++) t *= X;
    Y = t;
}

Здесь для промежуточных вычислений используется t. На выходной контакт Y значение подается только тогда, когда мы вычислили конечный результат.
Ольга Яловенко

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

Мой профиль
Было бы хорошо, если бы в условии задачи был указан тип данных. ведь из условия это не всегда ясно.
______________________
Яловенко Оля
Ольга Яловенко

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

Мой профиль
А ещё, на контрольных занятиях у всех проблемы с некоторыми определёнными задачами, а с остальными - всё ОК. Непонятно...
______________________
Яловенко Оля
Евгений Гацуков

Темы: 1
Сообщений: 6

Мой профиль
Сказал бы так, не понятно не то как РЕШАТЬ, а не понятно то как в некоторых местах ведет себя c-mpa Иногда кажется, что все написано верно, но задачу приходится отправлять по 10 раз.
Вера Корникова

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

Мой профиль
В Контроль практики (Р/О)\Проектирование\1\4 - "Умножить и сложить" приведено решение на C-MPA:

int __in __bits(4) a;
int __in __bits(4) b;
int __in __bits(4) c;
int __in __bits(4) d;
int __out __bits(8) res;
void main()
{ res = a * d + b * c;}

Однако оно не проходит. Если же ввести дополнительные переменные, то все ОК.
int __in __bits(4) a;
int __in __bits(4) b;
int __in __bits(4) c;
int __in __bits(4) d;
int __out __bits(8) res;
void main()
{ int __bits(8) sum1, __bits(8) sum2;
sum1=a*d;
sum2=b*c;
res=sum1+sum2;}

:!: И это не единственный случай



Вера Корникова

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

Мой профиль
Аналогичные проблемы были и в Контроль практики \Проектирование\5\6 - "Абсолютная погрешность"

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

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

Мой профиль
Ребята не нужно писать "НЕКОТОРЫЕ" - это не дает НИКАКОЙ информации !!!
Пишите КОНКРЕТНО, какие задачи, в какой контрольной, КАКИЕ решения !!!

Игорь Викторович - ПРОВЕРЬТЕ, пожалуйста, ВСЕ несданные студентами задачи !!! В первую очередь теми студентами, которые высказались в форуме ...
Игорь Коршунов

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

Мой профиль
Вера Корникова:
В Контроль практики (Р/О)\Проектирование\1\4 - "Умножить и сложить" приведено решение на C-MPA:

int __in __bits(4) a;
int __in __bits(4) b;
int __in __bits(4) c;
int __in __bits(4) d;
int __out __bits(8) res;
void main()
{ res = a * d + b * c;}

Однако оно не проходит.
 

Оно проходит. Видимо на тестирование было отправлена не совсем последняя версия (или допущена другая ошибка).
Попробуйте сделать все еще один раз, но очень аккуратно.
Игорь Коршунов

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

Мой профиль
Все кто считает, что они сдавали правильно решенную задачу, но тестирующая система не засчитала ее, пишите мне в почту номер задачи, дату и время сдачи (из протокола) + исходный текст решения на Си.
Игорь Коршунов

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

Мой профиль
Если тестирующая система выдает "Ошибка в исходном тексте", то это означает, что посланное решение не компилируется. Ошибки можно найти и исправить используя WInter.
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 24, 25, 26
Time:0,047