Перейти к содержанию

    

GCD конвейер VHDL

Всем привет! Я студент и пытаюсь изучать ПЛИСы.

Имеется следующая задачка для саморазвития:Имеется два входных сигнала A, B (std_loguc_vector(15 downto 0)). Нужно написать конвейер для алгоритма наибольшего общего делителя (количество ячеек в моей ПЛИСине 10.5 к).

Пытался через mod. Работает, но слишком много ресурсов тратит. Через обычный цикл loop так же. Количество итераций слишком много ресурса не хватает. Есть смысл обратить внимание на FSM, так как при минимальных затратах, выполняется алгоритм. Единственное, что надо запараллелить циклы автомата (думаю через Rising_Edge(clk)) подойдёт. Либо через unrolling loop для сдвига регистра, но занимается этим в 2018? :) так что, если у кого будет время и кто будет готов помочь в решении задачки, то буду рад. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу помочь -- Вам нужно начать с изучения соответсвующей литературы.

Например, "FPGA Prototyping by VHDL Examples" Pong P. Chu

 

P.S. Хотя моё личное мнения -- я бы крайне рекомендовал Verilog вместо VHDL. Но это оффтоп.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Могу помочь -- Вам нужно начать с изучения соответсвующей литературы.

Например, "FPGA Prototyping by VHDL Examples" Pong P. Chu

 

P.S. Хотя моё личное мнения -- я бы крайне рекомендовал Verilog вместо VHDL. Но это оффтоп.

 

Благодарю, и изучаю сейчас RTL HARDWARE DESIGN USING VHDL того же автора. Правда не до конца понимаю механику конвейризации конечного автомата бинарного алгоритма (12.8 листинг из данной книги). Если ещё актуально с помощью, то буду благодарен, даже не бесплатно если сложная задача(vk.com/semenishen). Verilog планирую на будущее, ибо надо с более жестких основ пройтись в vhdl :)

кстати, читал ваш блог на хабре, отличные статьи у вас! :)

Изменено пользователем Zolberg101

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация