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

компактная запись парралельного однотипного действия

Подскажите пожалуйста, как имея сто байтовый массив эстетичней записать

параллельний декремент каждого байта при ненулевом содержмом

ибо портянка из ста строк кажется не комильфо :

 

always@(posedge CLK )
begin              
if(CNT[0])begin CNT[0] <= CNT[0]-1;end 
if(CNT[1])begin CNT[1] <= CNT[0]-1;end 
if(CNT[2])begin CNT[2] <= CNT[2]-1;end 
....
if(CNT[99])begin CNT[99] <= CNT[99]-1;end 
end

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

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


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

В данном случае простой цикл

always@(posedge CLK )
begin
    for (i = 0; i < 100; i++)
        if(CNT[i])begin CNT[i] <= CNT[i]-1;end 
end

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


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

-естесствнно пробовал, но не подошло, ведь по-сути необходимо что-б синтезатор собрал не итеративное ,

а параллельное деиство

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


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

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

-естесствнно пробовал, но не подошло, ведь по-сути необходимо что-б синтезатор собрал не итеративное ,

а параллельное деиство

Вы проверяли результат в синтезаторе ? И что же у Вас получилось тогда?

Удачи! Rob.

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


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

-Переписал ,вроде пошло..

-Спасибо большое!

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


Ссылка на сообщение
Поделиться на другие сайты
-естесствнно пробовал, но не подошло, ведь по-сути необходимо что-б синтезатор собрал не итеративное ,

а параллельное деиство

В HDL языках цикл - это не последовательность действий, как в языках программирования, а это просто сокращение букв при описании чего-либо. Т.е. цикл делается вместо многократного описания одинаковых блоков...

А Вам действительно нужны одновременые декременты на самой большой системной частоте?

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


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

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

В HDL языках цикл - это не последовательность действий, как в языках программирования, а это просто сокращение букв при описании чего-либо. ...
Простите но это не так! - во что выльется при симуляции/синтезе результат работы цикла (в набор блоков или в результат последовательности действий в теле цикла) зависит от контекста применения этого цикла.

 

Удачи! Rob.

 

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


Ссылка на сообщение
Поделиться на другие сайты
Простите но это не так! - во что выльется при симуляции/синтезе результат работы цикла (в набор блоков или в результат последовательности действий в теле цикла) зависит от контекста применения этого цикла.

Дорогой Rob! Внимательно следите за собой, за тем что пишите.

Я написал "набор блоков". Вы пишите, что это "не так".

Но тут же пишите, что "в набор блоков" - может иметь место.

Следовательно, писать что это "не так" Вы права не имеете. Вы могли бы написать, что "не только так", т.е. добавить, но не опровергать!

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
Дорогой Rob! Внимательно следите за собой, за тем что пишите.

Следовательно, писать что это "не так" Вы права не имеете. Вы могли бы написать, что "не только так", т.е. добавить, но не опровергать!

 

Не судите строго, он бывший КИПовец. Заклятый друг инженера...

 

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


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

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

 

Дорогой Rob! Внимательно следите за собой, за тем что пишите.

Я написал "набор блоков". Вы пишите, что это "не так".

Но тут же пишите, что "в набор блоков" - может иметь место.

Следовательно, писать что это "не так" Вы права не имеете. Вы могли бы написать, что "не только так", т.е. добавить, но не опровергать!

Да уж! Вы написали (ниже я специально выделил то что я считаю глупостью)

В HDL языках цикл - это не последовательность действий, как в языках программирования, а это просто сокращение букв при описании чего-либо. Т.е. цикл делается вместо многократного описания одинаковых блоков...
Поскольку это Ваше утверждение категорично (Вы же не написали что обычно ..., чаще всего ..., цикл используют для ...) То я этим не согласился. Для чего я специально выделил в своем ответе что именно не так!

Простите но это не так! - во что выльется при симуляции/синтезе результат работы цикла (в набор блоков или в результат последовательности действий в теле цикла) зависит от контекста применения этого цикла.

Удачи! Rob.

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


Ссылка на сообщение
Поделиться на другие сайты
Подскажите пожалуйста, как имея сто байтовый массив эстетичней записать

параллельний декремент каждого байта

Каждого байта, или каждого бита? То, что я вижу у вас, не проще вообще написать как CNT <= CNT ^ ~100'b0 ?

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


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

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

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

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

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

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

Войти

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

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