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

Стандарты разработки на Verilog/SystemVerilog

Есть ли какое-то подобие MISRA-C, но только для Verilog?

Пока нашел стандарт разработки от Freescale.

Вообще, есть ли у вас корпоративные/личные правила разработки? Какие вы ставите префиксы у названий переменных регистров и цепей? Предпочитаете camelCase или under_score? Как размещаете состояния FSM внутри always? Предпочитаете FSM с одним или с двумя always? И т.д.

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


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

Довольно сложно, я бы даже сказал невыполнимо взять и договориться всем разработчикам.

Если говорить о входны сигналах, то часто ставят префикс "i" или "in", соответственно "o" или "out" у выходных.

А вообще у Иосифа Григорьевича в "Краткий курс HDL. Часть 3. О написании кода <вообще> ..." есть примеры и рекомендации.

 

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


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

Обсуждалось на форуме. Выкладывались разные стандарты. Поищите.

Пока нашел стандарт разработки от Freescale.
Взял его за основу, добавив что-то из других.

 

Вообще, есть ли у вас корпоративные/личные правила разработки?
Полагаю, что у любого разработчика или команды такое есть или к этому стремятся.

 

Какие вы ставите префиксы у названий переменных регистров и цепей?
Возьмите из стандартов. _b или _n, например, используется для обозначения цепи, несущей отрицательный логический сигнал. _ff — триггер. _in, _out или _i, _o, _reg, _ctr, _en, _rx, _tx, _rdy, _tmp и другие сообразно вашей фантазии.

 

Предпочитаете camelCase или under_score?
Когда-то пытался писать в стиле camelCase, но быстро отказался от этого. Читаемость, имхо, намного хуже при сомнительно экономии (экономии чего, даже непонятно).

 

Как размещаете состояния FSM внутри always? Предпочитаете FSM с одним или с двумя always? И т.д.

Отдельным блоком сигналы с префиксом start_ или подобным по смыслу.

И отдельным блоком always сам АКС.

 

В сети существует много стандартов и рекомендаций от Freescale, Cisco, Altera, Xilinx, Opencores и так далее. Был даже стандарт от нашего разработчика на местном wiki что ли. Что-то такое помнится.

От них стоит отталкиваться, на мой взгляд.

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


Ссылка на сообщение
Поделиться на другие сайты
Вообще, есть ли у вас корпоративные/личные правила разработки? Какие вы ставите префиксы у названий переменных регистров и цепей? Предпочитаете camelCase или under_score? Как размещаете состояния FSM внутри always? Предпочитаете FSM с одним или с двумя always? И т.д.

1) либо без, либо w_ и r_

2) under_score

3) FSM 1 always

 

Дело в том, что такие вещи в DO-254 не стандартизуются, хотя это можно назвать отдаленно "MISRA для Verilog". Просто говорится, что такой стандарт на код должен быть. Но это еще не всё. Есть большой список рекомендаций, какие конструкции допустимы, а какие запрещены. Наверное, их сформировали для DO-254, исходя из типичных распространенных или даже очень редких ошибок.

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


Ссылка на сообщение
Поделиться на другие сайты
Есть ли какое-то подобие MISRA-C, но только для Verilog?

 

всёже MISRA-C - это больше "подмножество (под)стандарта" Си обложенный рулами safety и reliability, а обсуждение как-то в стайл-гайд быстро скатилось...

(либо сравнение с MISRA-C было не очень справедливо использовано)

 

 

 

как пример: https://wiki.sei.cmu.edu/confluence/display...+numeric+values

т.е. для верилога это будет звучать как:

при использовании знаковой арифметики всегда объявляйте переменную с квалификатором signed

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


Ссылка на сообщение
Поделиться на другие сайты
1) либо без, либо w_ и r_

2) under_score

3) FSM 1 always

 

Дело в том, что такие вещи в DO-254 не стандартизуются, хотя это можно назвать отдаленно "MISRA для Verilog". Просто говорится, что такой стандарт на код должен быть. Но это еще не всё. Есть большой список рекомендаций, какие конструкции допустимы, а какие запрещены. Наверное, их сформировали для DO-254, исходя из типичных распространенных или даже очень редких ошибок.

Можно увидеть do 254?

 

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


Ссылка на сообщение
Поделиться на другие сайты
Можно увидеть do 254?

Ссылка провисит недолго.

DO-254, его перевод и КТ-254 (фактически перевод, гармонизированный DO-254).

DO-178 до кучи.

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


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

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

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

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

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

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

Войти

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

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