Jump to content

    

Реально ли повысить быстродействие?

                    val_tau := '0';
                    for i in 0 to 3 loop
                        if (tau > reglowtau(i) and tau < reghightau(i)) then
                            val_tau := masktau(i);
                            exit;
                        end if;
                    end loop;

Коллеги, что-то меня заклинило. Есть такой кусок, проверяет значение tau на принадлежность хотя бы одной из четырёх заданных участков длительности.

Проблема в быстродействии, разрядность tau 32 бита, тактовая 240 МГц. Утаптывал, утаптывал, максимум чего добился это слэка +30ps. Вроде и положительный, но...

Возможности фиттера похоже я уже исчерпал, seed практически не влияет на ситуацию. Есть ли хоть какой выход?

Share this post


Link to post
Share on other sites
2 минуты назад, _sda сказал:

Коллеги, что-то меня заклинило. Есть такой кусок, проверяет значение tau на принадлежность хотя бы одной из четырёх заданных участков длительности.

Проблема в быстродействии, разрядность tau 32 бита, тактовая 240 МГц.

И конечно именно вот это - "четырёх заданных участков длительности" должно быть именно 32 бита и никак иначе? Или же можно и в 8 или даже в 4 бита уложиться? 

Share this post


Link to post
Share on other sites

Спасибо! С первого выстрела прямо в яблочко, я об этом как-то не подумал. В 8 точно нельзя, а вот 16 бит кардинально изменят картину без заметного ухудшения функциональности.

:drinks:

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this