dvladim 0 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба Не думаю... Вызов функции происходит по каждому тику клока. Так что подача данных порциями по 8 точно есть! Я это применял в побайтном темпе. Вот оттуда ваш код(с указанного сайта) мною применяемый Вызов функции - ваше дело. Хотите каждый такт, хотите не каждый. Это уж как вы решите. Ширина данных - вещь параметризуемая. Нужна ширина в 1 бит - ну так сгенерите. Не вижу проблемы. Да, и кстати, код не мой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба Вызов функции - ваше дело. Хотите каждый такт, хотите не каждый. Это уж как вы решите. Ширина данных - вещь параметризуемая. Нужна ширина в 1 бит - ну так сгенерите. Не вижу проблемы. Да, и кстати, код не мой. Да, там якобы можно менять ширину шины выходной. Но на самом деле 1 не получишь.... Попробуйте! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба Да, там якобы можно менять ширину шины выходной. Но на самом деле 1 не получишь.... Попробуйте! Ширина выходной шины соответствует разрядности полинома. Извините, но проблемы в упор не вижу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба Ширина выходной шины соответствует разрядности полинома. Извините, но проблемы в упор не вижу. Ой, это я лоханулся. Извините! Конечно же входная шина!... Выходная всегда по размеру CRC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба Ой, это я лоханулся. Извините! Конечно же входная шина!... Выходная всегда по размеру CRC. Ну а ширину входных данных, как я уже говорил, можно выбрать при генерации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба Я вам вот какой момент расскажу. Если написать функцию для однобитного потока данных и потом её применить столько раз за такт, сколько нужно битов обрабатывать в параллель, то Xilinx разведет это дело на частоту в ~1.5 раза большую, чем получается с кодом всех этих генераторов и opencores. ЗЫ: исходник продается :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба 2 Shtirlits а какой синтезатор ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба xst, хотя это не важно, synplify при этом тоже хорош :) чего я только не пробовал, чтобы поднять тактовую... а оказалось все так просто и сногсшибательно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба За XST я такое замечал, а вот Synplify в таких случаях синтезировал однаково.. То есть вы хотите сказать, что применительно к этой задаче, разбиение на биты дало одинаковые результаты для XST и Synplify то есть увеличило тактовую ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба crc32 - задача, которая сильно зависит от способа реализации и размещения. И чем больше её регистры пытается дублировать синтезатор, тем она занимает больше площади и получается еще хуже. Сражался я с этим 5 лет назад, утверждать не буду, но помнится, что я никак не мог сделать больше 212MHz на virtex-2pro никаким синтезатором. Когда уже замучался и написал себе модель для тестирования и тупо попытался её развести, получил 270Mhz. Сильно удивился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 16 марта, 2011 Опубликовано 16 марта, 2011 · Жалоба ЗЫ: исходник продается :) гыыы, если учесть что я раза 3 его выкладывал на форуме...... то вы сударь почти барыга ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 16 марта, 2011 Опубликовано 16 марта, 2011 · Жалоба Дык! Но вы выкладывали разве мой исходник? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 16 марта, 2011 Опубликовано 16 марта, 2011 · Жалоба Дык! Но вы выкладывали разве мой исходник? :) а будет разница ? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 16 марта, 2011 Опубликовано 16 марта, 2011 · Жалоба Хотел было предложить соревнование, но заленился, да и некогда. Наверное не будет разницы, если у вас все написано так, как я про это думаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 17 марта, 2011 Опубликовано 17 марта, 2011 (изменено) · Жалоба ..Наверное не будет разницы, если у вас все написано так, как я про это думаю. Ну вот для куражу за 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; Изменено 18 марта, 2011 пользователем Мур Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться