Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Стандарты разработки на Verilog/SystemVerilog
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
flammmable
Есть ли какое-то подобие MISRA-C, но только для Verilog?
Пока нашел стандарт разработки от Freescale.
Вообще, есть ли у вас корпоративные/личные правила разработки? Какие вы ставите префиксы у названий переменных регистров и цепей? Предпочитаете camelCase или under_score? Как размещаете состояния FSM внутри always? Предпочитаете FSM с одним или с двумя always? И т.д.
Nieve
Довольно сложно, я бы даже сказал невыполнимо взять и договориться всем разработчикам.
Если говорить о входны сигналах, то часто ставят префикс "i" или "in", соответственно "o" или "out" у выходных.
А вообще у Иосифа Григорьевича в "Краткий курс HDL. Часть 3. О написании кода <вообще> ..." есть примеры и рекомендации.
x736C
Обсуждалось на форуме. Выкладывались разные стандарты. Поищите.
Цитата(flammmable @ Jun 28 2018, 13:25) *
Пока нашел стандарт разработки от Freescale.
Взял его за основу, добавив что-то из других.

Цитата(flammmable @ Jun 28 2018, 13:25) *
Вообще, есть ли у вас корпоративные/личные правила разработки?
Полагаю, что у любого разработчика или команды такое есть или к этому стремятся.

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

Цитата(flammmable @ Jun 28 2018, 13:25) *
Предпочитаете camelCase или under_score?
Когда-то пытался писать в стиле camelCase, но быстро отказался от этого. Читаемость, имхо, намного хуже при сомнительно экономии (экономии чего, даже непонятно).

Цитата(flammmable @ Jun 28 2018, 13:25) *
Как размещаете состояния FSM внутри always? Предпочитаете FSM с одним или с двумя always? И т.д.

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

В сети существует много стандартов и рекомендаций от Freescale, Cisco, Altera, Xilinx, Opencores и так далее. Был даже стандарт от нашего разработчика на местном wiki что ли. Что-то такое помнится.
От них стоит отталкиваться, на мой взгляд.
AVR
Цитата(flammmable @ Jun 28 2018, 13:25) *
Вообще, есть ли у вас корпоративные/личные правила разработки? Какие вы ставите префиксы у названий переменных регистров и цепей? Предпочитаете camelCase или under_score? Как размещаете состояния FSM внутри always? Предпочитаете FSM с одним или с двумя always? И т.д.

1) либо без, либо w_ и r_
2) under_score
3) FSM 1 always

Дело в том, что такие вещи в DO-254 не стандартизуются, хотя это можно назвать отдаленно "MISRA для Verilog". Просто говорится, что такой стандарт на код должен быть. Но это еще не всё. Есть большой список рекомендаций, какие конструкции допустимы, а какие запрещены. Наверное, их сформировали для DO-254, исходя из типичных распространенных или даже очень редких ошибок.
Doka
Цитата(flammmable @ Jun 28 2018, 13:25) *
Есть ли какое-то подобие MISRA-C, но только для Verilog?


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



как пример: https://wiki.sei.cmu.edu/confluence/display...+numeric+values
т.е. для верилога это будет звучать как:
при использовании знаковой арифметики всегда объявляйте переменную с квалификатором signed
Maverick
Цитата(AVR @ Jun 28 2018, 16:54) *
1) либо без, либо w_ и r_
2) under_score
3) FSM 1 always

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

Можно увидеть do 254?
x736C
Цитата(Maverick @ Jun 29 2018, 17:09) *
Можно увидеть do 254?

Ссылка провисит недолго.
DO-254, его перевод и КТ-254 (фактически перевод, гармонизированный DO-254).
DO-178 до кучи.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.