МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА: Generate или always ? +/- ?

Generate или always ? +/- ? 4 года 2 мес. назад #2738

  • tomas111
  • tomas111 аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 20
  • Спасибо получено: 0
Привет всем! Столкнулся с проблемой, не пойму зачем нужен Generate ? И что он описывает ? Какой его синтаксис ?
И в чем его разница и сходство с always ? Спасибо!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Generate или always ? +/- ? 4 года 2 мес. назад #2742

Например, только с помощью generate можно заключить подмодуль в if -конструкцию. Я так рекурсивный модуль сделал.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Generate или always ? +/- ? 4 года 2 мес. назад #2743

  • tomas111
  • tomas111 аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 20
  • Спасибо получено: 0
А можно какой нить код пример ? :))

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Generate или always ? +/- ? 4 года 2 мес. назад #2744

Проект описан здесь: 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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Generate или always ? +/- ? 4 года 2 мес. назад #2746

  • tomas111
  • tomas111 аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 20
  • Спасибо получено: 0
Получается Generate описывает тригеры ? и в нем можно использовать assign ?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Generate или always ? +/- ? 4 года 2 мес. назад #2754

представь, что generate - это препроцессор, только более функциональный чем в си\с++, который просчитает все на этапе компиляции.
пс можно assign и даже создание инстанцев других модулей (оч удобно)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Generate или always ? +/- ? 4 года 2 мес. назад #2755

  • nckm
  • nckm аватар
  • Не в сети
  • Администрация форума
  • Администрация форума
  • Сообщений: 88
  • Спасибо получено: 23

tomas111 пишет: Получается Generate описывает триггеры ? и в нем можно использовать assign ?


generate позволяет создавать экземпляры wire, reg и модулей по некоторому условию или в цикле именно в процессе компиляции.
Вот пример игра "жизнь" в ПЛИС .

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Generate или always ? +/- ? 4 года 2 мес. назад #2759

  • tomas111
  • tomas111 аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 20
  • Спасибо получено: 0
Проект "жизнь" вовремя:)) Теперь все понятно :))

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
Время создания страницы: 0.186 секунд

facebook  GitHub  YouTube  Twitter