-
tomas111
-
Автор темы
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 20
-
Спасибо получено: 0
-
-
|
Привет всем! Столкнулся с проблемой, не пойму зачем нужен Generate ? И что он описывает ? Какой его синтаксис ?
И в чем его разница и сходство с always ? Спасибо!
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
leshabirukov
-
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 56
-
Спасибо получено: 13
-
-
|
Например, только с помощью generate можно заключить подмодуль в if -конструкцию. Я так рекурсивный модуль сделал.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
tomas111
-
Автор темы
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 20
-
Спасибо получено: 0
-
-
|
А можно какой нить код пример ? :))
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
leshabirukov
-
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 56
-
Спасибо получено: 13
-
-
|
Проект описан здесь:
habrahabr.ru/post/222287/
Исходники:
opencores.org/project,numbert_sort_device
Вот место с рекурсией: module Dyna_Tree ( clk, glob_com, dataIn, dataOut );
parameter HBIT= 3;
parameter TREE_LEVEL= 4;
parameter IMRIGHT= 0;
input clk;
input [1:0] glob_com;
output TPort dataOut;
input TPort dataIn;
TPort fromLeft;
TPort fromRight;
Cell_DT_Inner #( HBIT, IMRIGHT ) inner ( clk, glob_com, dataIn, fromLeft, fromRight, dataOut );
generate
if ( TREE_LEVEL >0 )
begin
Dyna_Tree #( HBIT, TREE_LEVEL-1, 0 ) leftSubTree ( clk, glob_com, dataOut, fromLeft );
Dyna_Tree #( HBIT, TREE_LEVEL-1, 1 ) rightSubTree ( clk, glob_com, dataOut, fromRight );
end
else
begin
assign fromLeft.msg =VMS_STOP;
assign fromRight.msg=VMS_STOP;
end
endgenerate
endmodule
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
tomas111
-
Автор темы
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 20
-
Спасибо получено: 0
-
-
|
Получается Generate описывает тригеры ? и в нем можно использовать assign ?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
shchekoldin
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 16
-
Спасибо получено: 1
-
-
|
представь, что generate - это препроцессор, только более функциональный чем в си\с++, который просчитает все на этапе компиляции.
пс можно assign и даже создание инстанцев других модулей (оч удобно)
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
nckm
-
-
Не в сети
-
Администрация форума
-
-
Сообщений: 112
-
Спасибо получено: 34
-
-
-
-
-
|
tomas111 пишет: Получается Generate описывает триггеры ? и в нем можно использовать assign ?
generate позволяет создавать экземпляры wire, reg и модулей по некоторому условию или в цикле именно в процессе компиляции.
Вот пример
игра "жизнь" в ПЛИС
.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
tomas111
-
Автор темы
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 20
-
Спасибо получено: 0
-
-
|
Проект "жизнь" вовремя:)) Теперь все понятно :))
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.119 секунд