Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Модуль поиска
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Gulf777
Требуются материалы или примеры реализации "Блока поиска заданных многоразрядных чисел в непрерывном последовательном цифровом потоке на базе ПЛИС Xilinx, Altera, Actel и т.п."

Заранее спасибо!!!
Methane
Цитата(Gulf777 @ Mar 15 2009, 12:11) *
Требуются материалы или примеры реализации "Блока поиска заданных многоразрядных чисел в непрерывном последовательном цифровом потоке на базе ПЛИС Xilinx, Altera, Actel и т.п."

Заранее спасибо!!!

А что требуется-то? Схема компаратора?
Gulf777
Да
Methane
Так можно

Код
reg [7:0] old0;
reg [7:0] old1;
reg [7:0] old2;
reg [7:0] old3;
input [7:0] dataIn;

input [7:0] cmpw0;
input [7:0] cmpw1;
input [7:0] cmpw2;
input [7:0] cmpw3;

output ok;

always @ (posedge clk)
begin
    old0 <= dataIn;
    old1 <= old0;
    old2 <= old1;
    old3 <= old2;
end
assign ok = ((old0 == cmpw0) && (old1 == cmpw1) && (old2 == cmpw2) && (old3 == cmpw3) );


/* не собирал, на ошибки не проверял, дома нет софта */
Gulf777
Спс за код, но требуются примеры "модулей поиска" реализованные на ПЛИС различных производителей, не обязательно отдельно, возможно использование их в больших проектах. Присылайте ссылки, буду благодарен.
Methane
Цитата(Gulf777 @ Mar 15 2009, 15:13) *
Спс за код, но требуются примеры "модулей поиска" реализованные на ПЛИС различных производителей, не обязательно отдельно, возможно использование их в больших проектах. Присылайте ссылки, буду благодарен.

Вы слегка "странное просите". Вариантов может быть очень много.
Если вам нужен пример "большого проекта", то смотрите на
http://www.opensparc.net/
EvgenyNik
Цитата
примеры "модулей поиска" реализованные на ПЛИС различных производителей

"а теперь этот же стих, но в исполнении другого рассказчика..." 1111493779.gif
Код на HDL-языке будет справедлив для ПЛИС всех производителей, если конечно, не использовать какие-то специфические навороты. Но в вашей формулировке ничего специфического нет. HDL как раз подразумевает достаточную абстрагированность от вентильного уровня конкретного производителя.
Подобные задачи - "привести реализации на основе..." характерны для логики на рассыпухе или чисто теоретических (учебных) изысканий. Тот же RS-триггер на И-НЕ или ИЛИ-НЕ... А здесь всё более поверхностно.
Да и чем принципиально различные производители могут отличаться друг от друга? У каждого из них в линейке собственных устройств различий больше, чем между собой. Поэтому логичнее было бы "придумать" проблему и различно решать её на ПЛИСках/ПЛМках с PLL/ без PLL, с ОЗУ/ без ОЗУ, с FLASH на борту и без неё.. А производитель роли особой не играет. Разве что последовательность надо анализировать в космосе или в зоне ядерного взрыва wink.gif
Gulf777
Помогите накидать код на VHDL для Нажмите для просмотра прикрепленного файла алгоритма!
HARMHARM
Цитата(Gulf777 @ Mar 21 2009, 13:09) *
Помогите накидать код на VHDL для Нажмите для просмотра прикрепленного файла алгоритма!

Да уж, уважаемый Олег, очень информативно!
Gulf777
А что непонятно в этом алгоритме?

модуль поиска в непрерывном последовательном цифровом потоке, поиск осуществляется по маске 64 бита, при нахождении нужной последоваетльности на выход результата подается 1-ца.
Sefo
Непонятно почему Вы это сами сделать не можете - это как при изучении языка Си написать программу выводящую "Helo World!"

CODE


entity CMP
port
(
CLK : in std_logic;
Reset : in std_logic;

Data_In : in std_logic_vector(63 downto 0);
Data_Out : out std_logic_vector(63 downto 0);

Mask : in std_logic_vector(63 doento 0);

R : out std_logic -- результат сравнения - равен 1 когда Mask = Data_In
)
end entity CMP;

architecture RTL of CPM is

begin

Data_Out <= Data_In;

process(CLK)
begin

if Reset = '1' then
R <= '0';
elsif Data_In = Mask then
R <= '1';
else
R <= '0';
end if;

end process;

end RTL;


а если не синхронный, то

CODE


entity CMP
port
(
Data_In : in std_logic_vector(63 downto 0);
Data_Out : out std_logic_vector(63 downto 0);

Mask : in std_logic_vector(63 doento 0);

R : out std_logic -- результат сравнения - равен 1 когда Data_In = Mask
)
end entity CMP;

architecture RTL of CPM is

begin

Data_Out <= Data_In;

R <= '1' when Data_In = Mask else '0';

end RTL;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.