реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Стандарты разработки на Verilog/SystemVerilog, Кто какие знает/кто какие использует
flammmable
сообщение Jun 28 2018, 10:25
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 4-06-18
Пользователь №: 104 848



Есть ли какое-то подобие MISRA-C, но только для Verilog?
Пока нашел стандарт разработки от Freescale.
Вообще, есть ли у вас корпоративные/личные правила разработки? Какие вы ставите префиксы у названий переменных регистров и цепей? Предпочитаете camelCase или under_score? Как размещаете состояния FSM внутри always? Предпочитаете FSM с одним или с двумя always? И т.д.
Go to the top of the page
 
+Quote Post
Nieve
сообщение Jun 28 2018, 12:49
Сообщение #2





Группа: Участник
Сообщений: 13
Регистрация: 29-04-18
Из: Москва
Пользователь №: 103 558



Довольно сложно, я бы даже сказал невыполнимо взять и договориться всем разработчикам.
Если говорить о входны сигналах, то часто ставят префикс "i" или "in", соответственно "o" или "out" у выходных.
А вообще у Иосифа Григорьевича в "Краткий курс HDL. Часть 3. О написании кода <вообще> ..." есть примеры и рекомендации.
Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 28 2018, 13:50
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 271
Регистрация: 3-03-06
Пользователь №: 14 942



Обсуждалось на форуме. Выкладывались разные стандарты. Поищите.
Цитата(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 что ли. Что-то такое помнится.
От них стоит отталкиваться, на мой взгляд.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jun 28 2018, 13:54
Сообщение #4


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 340
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(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, исходя из типичных распространенных или даже очень редких ошибок.


--------------------
Go to the top of the page
 
+Quote Post
Doka
сообщение Jun 29 2018, 09:51
Сообщение #5


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 162
Регистрация: 4-10-04
Пользователь №: 778



Цитата(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
Причина редактирования: добавлен пример


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jun 29 2018, 14:09
Сообщение #6


я только учусь...
******

Группа: Модераторы
Сообщений: 3 444
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(AVR @ Jun 28 2018, 16:54) *
1) либо без, либо w_ и r_
2) under_score
3) FSM 1 always

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

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


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 30 2018, 01:31
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 271
Регистрация: 3-03-06
Пользователь №: 14 942



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

Ссылка провисит недолго.
DO-254, его перевод и КТ-254 (фактически перевод, гармонизированный DO-254).
DO-178 до кучи.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd September 2018 - 15:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.00897 секунд с 7
ELECTRONIX ©2004-2016