Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Языки описания аппаратуры (VHDL и др.)

CRC16 и VHDL подскажите где торможу.

Отправлено avtomax_tehno 18 декабря 2008 г. 17:59


Пытаюсь реализовать код с C# типа :

ushort[] table = new ushort[256];
ushort value, t,v;
ushort temp;
for (ushort i = 1; i < table.Length; i++)
{
value = 0;
temp = i;
for (byte j = 0; j < 8; j++)
{
t = (ushort)((value ^ temp) & 0x0001);
if (t != 0)
{
v = (ushort)(value >> 1);
value = (ushort)(v ^ polynomial);
}
else
{
value >>= 1;
}
temp >>= 1;
}
table[i] = value;
}
где в table[] помещяются результаты таблисы CRC, для дальнейшего применения. На PC все работает . Пробую на VHDL под QuartusII. не ругается но и не формирует масив table[].

текст этого "безобразия"

TYPE RamDim IS ARRAY(0 TO 255) of std_logic_vector(15 downto 0);
SIGNAL myArray : RamDim;

crc_tables : process(clk)

variable value_t : BIT_VECTOR(0 TO 15);
variable temp : BIT_VECTOR(0 TO 15);
variable tv : BIT_VECTOR(0 TO 15);
variable m_c : integer range 0 to 255;
constant polynomial : BIT_VECTOR(0 TO 15) := "1010000000000001";
begin

if clk'event and clk = '1' then
if stst = '0' then
myArray <= (myArray'range => "0000000000000000");
stst <= '1';
else

if flag_crc = '0' then
for i in 0 to 255 loop
value_t := "0000000000000000";
temp := to_bitvector(conv_std_logic_vector(i,16));

for j in 0 to 7 loop
tv := (value_t XOR temp ) AND "0000000000000001";
if tv = "0000000000000000" then
value_t := value_t SRL 1;
else
value_t := (value_t SRL 1) XOR polynomial;
end if;
temp := temp SRL 1;
end loop;
myArray(i) <= to_stdlogicvector(value_t);
end loop;
flag_crc <= '1';
end if;
end if;
end if;

end process crc_tables;

Почему не выполняется заполнение масива. Я пытаюсь его читать и выводить на терминал PC. (Работа всех остальных модулей нормальная)


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 34:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru