flammmable 0 26 марта, 2021 Опубликовано 26 марта, 2021 · Жалоба Стандарты написания кода предостерегают от использования т.н. магических чисел. В частности в "SEI CERT C" есть правило DCL06-C. Для Verilog данное правило также актуально. Но тут есть вопрос. Глядя на отдельное выражение типа some_reg <= 1; не ясно, идет ли речь об установке логического значения TRUE, о переводе некой линии в состояние HIGH или присвоении регистру целочисленного значения, равного единице. Чтобы исключить эту неопределенность, возможно следует определить параметры TRUE, FALSE, HIGH и LOW, а затем использовать уже их в коде. Делаете ли вы так? Если да, то где именно вы прописываете определения TRUE-FALSE-HIGH-LOW ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 26 марта, 2021 Опубликовано 26 марта, 2021 · Жалоба Приветствую! 1 hour ago, flammmable said: Стандарты написания кода предостерегают от использования т.н. магических чисел. В частности в "SEI CERT C" есть правило DCL06-C. Для Verilog данное правило также актуально. Но тут есть вопрос. Глядя на отдельное выражение типа some_reg <= 1; не ясно, идет ли речь об установке логического значения TRUE, о переводе некой линии в состояние HIGH или присвоении регистру целочисленного значения, равного единице. Чтобы исключить эту неопределенность, возможно следует определить параметры TRUE, FALSE, HIGH и LOW, а затем использовать уже их в коде. Думаю все же это больше регулируется внутренними правилами к оформлению кода в компании. Но тут надо аккуратно смотреть на удобства и недостатки которые такие улучшения могут привнести. Был у меня опыт работы с кодом с похожими константами типа TRUE|FALSE|HI|LO ... вместо 1'b1, 1'b0. Не сказал бы что читаемость и понимание кода были лучше. В результате от такого кодирования примитивов отказались оставив лишь значимые для логики дизайна константы, типа `define BUS_ENABLE 1'b1 some_reg <= `BUS_ENABLE; 1 hour ago, flammmable said: Делаете ли вы так? Если да, то где именно вы прописываете определения TRUE-FALSE-HIGH-LOW ? Для чистого Verilog есть единственный практичный способ для таких определений - include файл с определением нужных констант. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
flammmable 0 26 марта, 2021 Опубликовано 26 марта, 2021 · Жалоба Спасибо за развернутый ответ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться