Неизвестный Verilog
2017-04-25 20:59Обнаружил в языке Verilog неожиданную фичу, не описанную ни в одной книжке. Оказывается, диапазоны можно задавать в виде X+:Y или X-:Y, что эквивалентно X+Y-1:X и X:X-Y+1 соответственно. К примеру, эти три присваивания эквивалентны:
value[10:8] = 0;
value[10-:3] = 0;
value[8+:3] = 0;

no subject
Date: 2017-04-26 04:22 (UTC)no subject
Date: 2017-04-26 04:24 (UTC)no subject
Date: 2017-04-26 06:07 (UTC)no subject
Date: 2017-04-26 22:51 (UTC)no subject
Date: 2017-04-27 00:28 (UTC)no subject
Date: 2017-04-26 05:59 (UTC)no subject
Date: 2017-04-26 06:08 (UTC)no subject
Date: 2017-04-26 07:05 (UTC)no subject
Date: 2017-04-26 14:48 (UTC)no subject
Date: 2017-04-26 17:05 (UTC)no subject
Date: 2017-04-26 18:27 (UTC)Я нашёл упоминание только у Бхаскера в учебнике по Verilog.
Все остальные молчат как партизаны.
no subject
Date: 2017-04-26 22:45 (UTC)no subject
Date: 2017-04-27 00:20 (UTC)Есть у part-select один очевидный недостаток: перекос в сторону Little Endian.
no subject
Date: 2017-04-26 18:12 (UTC)Странно, что у Палниткара про это ни слова.
no subject
Date: 2017-04-26 18:31 (UTC)no subject
Date: 2017-04-26 19:08 (UTC)Я стал специально искать и нарыл-таки проект, где эта конструкция реально используется: https://github.com/russdill/bch_verilog
no subject
Date: 2017-04-26 22:47 (UTC)