|
|
  |
Сравнить (через сжатие) два 512разядных(и более)сущности, Прошу совета по минимуму аппаратного рессурса |
|
|
|
Mar 14 2011, 08:58
|
Знающий
   
Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737

|
Цитата(Мур @ Mar 14 2011, 09:48)  Не думаю... Вызов функции происходит по каждому тику клока. Так что подача данных порциями по 8 точно есть! Я это применял в побайтном темпе. Вот оттуда ваш код(с указанного сайта) мною применяемый Вызов функции - ваше дело. Хотите каждый такт, хотите не каждый. Это уж как вы решите. Ширина данных - вещь параметризуемая. Нужна ширина в 1 бит - ну так сгенерите. Не вижу проблемы. Да, и кстати, код не мой.
|
|
|
|
|
Mar 14 2011, 20:43
|
Знающий
   
Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737

|
Цитата(Мур @ Mar 14 2011, 12:17)  Да, там якобы можно менять ширину шины выходной. Но на самом деле 1 не получишь.... Попробуйте! Ширина выходной шины соответствует разрядности полинома. Извините, но проблемы в упор не вижу.
|
|
|
|
|
Mar 17 2011, 13:17
|

Знающий
   
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847

|
Цитата(Shtirlits @ Mar 16 2011, 10:46)  ..Наверное не будет разницы, если у вас все написано так, как я про это думаю. Ну вот для куражу за 2 минуты CRC24 Цитата ------------------------------------------------------------------------------- -- -- Description : X24+X23+X6+X5+X1+1 -- ------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.all; entity signature is port( CLK : in STD_LOGIC; Reset : in STD_LOGIC; ind : in STD_LOGIC; dat : out STD_LOGIC_VECTOR(23 downto 0) ); end signature;
architecture signature_body of signature is signal rg_baza : STD_LOGIC_VECTOR(23 downto 0); signal rg_bz : STD_LOGIC_VECTOR(23 downto 0); begin process (CLK,Reset) begin if Reset = '1' then rg_baza <= "000000000000000000000000"; elsif CLK'event and CLK = '1' then rg_baza <= rg_bz; end if; end process; rg_bz(0) <= rg_baza(23)xor ind; rg_bz(1) <= rg_baza(0) xor (rg_baza(23) xor ind); rg_bz(2) <= rg_baza(1); rg_bz(3) <= rg_baza(2); rg_bz(4) <= rg_baza(3); rg_bz(5) <= rg_baza(4) xor (rg_baza(23) xor ind); rg_bz(6) <= rg_baza(5) xor (rg_baza(23) xor ind); rg_bz(21 downto 7) <= rg_baza(20 downto 6); rg_bz(22) <= rg_baza(21) xor (rg_baza(23) xor ind); rg_bz(23) <= rg_baza(22) xor (rg_baza(23) xor ind); dat<= rg_baza; end signature_body;
Сообщение отредактировал Мур - Mar 18 2011, 06:41
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|