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

Дерево сумматоров на verilog

Приветствую!

 

Приводя в порядок ряд старых проэктов периодически сталкиваюсь с интересными задачками.

 

Подскажите идею как на Verilog возможно описать синтезируемое, настраивоемое дерево сумматоров - имеем N входов разрядностью M а на выходе получаем сумму всех входов с разрядностью M+Log2(N) с соответствующе задержкой ( регистры после каждого сумматора).

Раньше я это делал макросами которые генерили нужные мне модули, а сейчас все хочется сделать средствами самого Verilog.

 

Rob.

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


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

на первый взгляд блоками generate должно обойтись - вы не пробовали?

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


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

А разве Verilog "generate" поддерживает? Или что у него есть взамен?

Verilog-2001 поддерживает generate, с помощью которого можно парой строчек инстанциировать (э-э-э, как бы по-русски выразиться :)) кучу одинаковых модулей в своем проекте. Причем возможен как циклический, так и условный generate.

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


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

точно - при этом можно реализовать достаточно сложные формулы конфигурации (но осторожно, господин Синплифай поддерживает его достаточно говёно, о чём уже писал, - однако с такой задачей он справится)

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


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

Принципы работы generate я знаю еще с AHDL. :) Щас просмотрел весь стандарт на Verilog (IEEE Std 1364-1995), не нашел там такого...

Приведите пару примеров плиз, как им пользоваться...

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


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

Щас просмотрел весь стандарт на Verilog (IEEE Std 1364-1995), не нашел там такого...

Начиная с Verilog-2001...

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


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

Приветствую!

 

Вопросов все больше а решениий пока нет...

 

Если я в конструкции generate в цикле объявляю wire или reg то могу ли я получить к ним доступ вне блока generate c указанием номера конкретного цикла generate ? например так как внизу

 

genvar i;

generate for (i=0; i<LTAPS; i=i+1)

begin : del

 

wire [WH-1+i:0] wTmp ;

...

...

end

endgenerate

 

assign Dou= ... wTmp из цикла где i=2 ; ???

 

В ActivHDL 7.1 работает такая конструкция

 

assign Dou=del[2].wTmp;

 

но в Synplify 8.2 ругается что нет переменной del.

 

 

Rob.

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


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

да доступ в этом случае разрешён, проблема в Синплифай(МоделСим например такие конструкции ест не поморщившись) - эту проблему я описывал сдесь:

http://forum.electronix.ru/index.php?showtopic=6339&hl= (надо сказать что у Синплифай вообще проблемы с новым верилогом и уже не первое поколение, хоть и американцы, переходите на синопсис)

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

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


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

как только вы сможете нарисовать необходимую схему вручную на бумажке вам сразу станет понятно как её поисать в верилоге и как она будет работать во времени... а A=C+B; Это не схемотехника... это для студентов и тех, кому всё равно как стабильно и насколько правильно это будет работать.

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


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

Приветствую!

 

Привык я уже к Synplify. Новые инструменты - новые проблемы, с которыми тоже надо будет разбиратся. Установил я для теста FPGA conpilerII - загнал маленький проект - тут же получил -

конструкция localparam не поддерживается.

 

Придется наверное вернутся на старый проверенный путь - написать макрос который сгенерит нужный мне модуль :( . Всего то FIR фильтр с оптимизацией.

 

А в схематике рисовать - это весело :biggrin: Представить себе Pentium в схематике :)))

 

Rob

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...