[an error occurred while processing this directive]
REM, MOD, Двоично-десятичный счетчик. VHDL. Помогите сделать....
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено Compana 18 января 2005 г. 23:05

У меня такая задача возникла. Нужно считать количество импульсов, а потом записать это число в массив - прочем элементу массива соответствует цифра числа. Например число N = 1024 должно быть представлено так:
DataStr(13) := 1;
DataStr(14) := 0;
DataStr(15) := 2;
DataStr(16) := 4;

Я думал сначала сделать просто:

ArrayPtr := 16;
While N > 0 loop
DataStr(ArrayPtr) <= N rem 10;
N := (N - (N rem 10)*10) / 10;
ArrayPtr := ArrayPtr - 1;
END loop;
DataReady <= true;

Не вышло.
Ругается так: Operator must have constant operands or first operand must be power of 2

Пробовал сделать путем обычного деления "/" (т.к. при делении целых чисел остаток отбрасывается 3/2 = 1)
Ругается точно так же но на .

Впринципе меня спас бы обычный двоично-десятичный счетчик с 7 тетрадами. Если кто-нибудь поможет кодом - буду очень благодарен.

А вообще очень интересно было бы услышать как бороться с операциями деления, целочисленного деления, остатками. Я, признаться, думал, что все гораздо проще - язык программирования же как никак...

Может посоветуете что?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru