Запомнился мне один случай из студенческой жизни на тему нового.
Ходил на курсы по VHDL. И нам препод поставил задачу поиска значения тангенса по таблице, хранящейся в памяти. Ну поиск, соответственно методом дихотомии. Говорит, что они используют решение за 20 тактов, но если сделаем за 24, и то уже хорошо ( видимо он в нас не верил))) ).
А память использовалась двухпортовая, один порт просто простаивал. Собственно, а чего бы его не использовать? Вот этим вопросом я и задался.
Сложность была в том, чтобы подобрать адекватный и быстрый способ формирования адресов для обхода списка сразу по двум серединкам, да еще конвейеризацию не забыть. В итоге, все хорошо получилось, и результат вышел 13 тактов. А после конвейеризации начальных циклов чтения из памяти, на которые я забил (друг оптимизировал уже) вышло 10. Итого в 2 раза быстрее (по тактам).
Препод не оценил, причем вообще ))
А я вот часто задаюсь такими вопросами, приходит какой-нибудь извращенный способ в голову и вперед...