ГОСТ Р МЭК 61508-7—2012
П р и м е ч а н и е — Особый метод анализа «Охват кода» имеет ограниченное применение из-за высокого
параллелизма описания аппаратных средств и необходимости обоснования исчерпывающими проверками. «Ох
ват кода» обычно служит для демонстрации неохваченного функционального кода.
Е.14 Соблюдение руководств по кодированию
Цель. Строгов соблюдение стиля кодирования приводит к синтаксически и семантически корректному коду
схемы.
Описание. Синтаксические правила кодирования помогают создать легко читаемый код и лучшую докумен
тацию. включая управление версиями. Обычно руководства содержат правила по организации и комментированию
блоков или модулей схемы.
Семантические правила кодирования помогают предотвратить типичные проблемы реализации с помощью
устранения структур, которые приводят к ошибке синтеза — неоднозначной реализации функции схемы. Типичны ми
правилами являются, например, предотвращение асинхронных структур или структур, которые производят не
предсказуемую последовательность синхросигналов. Обычно к таким неоднозначностям приводит использование
защелок или взаимодействие данных с синхросигналами.
Руководства по проектированию рекомендуют избегать систематических отказов проекта во время процесса
разработки СИС. Стиль кодирования в определенном смысле ограничивает эффективность проекта, однако, в свою
очередь, дает преимущество в предотвращении отказов во время процесса разработки СИС. Он в частности:
- предотвращает типичные недостатки кодирования или отказы.
- ограниченно использует проблемные структуры, которые приводят к неоднозначным результатам синтеза;
- применяется для проектирования тестируемости:
- обеспечивает прозрачный и удобный код.
Пример стиля кодирования.
1 Код должен содержать столько комментариев, сколько это необходимо для понимания деталей реализа
ции и функции. Используемые соглашения должны быть определены перед началом проекта. В течение стадии
проектирования должно быть проверено соответствие определенных соглашений.
1.1 Стандартные заголовки включают историю, перекрестные ссылки на спецификацию, информацию об от
ветственности и данные, сопровождающие проект, такие как номер версии, запросы на изменение и т. д.
1.2 Легко читаемые шаблоны: эквивалентные процессы должны быть описаны одинаковой процедурой, то
есть использование предопределенных шаблонов для повторяющихся процессов (если-то-иначе, для и
т. д.).
1.3 Точное и читаемое соглашение о присвоении имен, например, прописная/строчная буква, префикс и
постфикс, точное дифференцирование между именем порта, внутренними сигналами, константами,
переменными, низкий активный уровень (ххх_п) и т. д.
1.4 Должны быть введены ограничения на размер модуля и число портов на модуле для увеличения читае
мости кода.
1.5 Структурированная и защищенная разработка кода, например, информация о состоянии должна инкап
сулироваться в FSM (сокрытие информации), чтобы обеспечить легкое изменение кода.
1.6 Должны быть реализованы проверки достоверности, такие как проверка диапазона и т. д.
1.7 Предотвращение следующих структур/команд:
- использование просмотра диапазона по индексу в порядке возрастания ключа (от х к у) для сигналов
шины;
- команды «Отключить» в Verilog (соответствует команде goto);
- многомерных массивов (> 2), записей;
- сочетания типов данных без знака и со знаком.
2 Завершенный проект синхронизации (допускается получение тактовых импульсов только от центральных
тактовых генераторов).
2.1 Выходы модулядолжны быть синхронизированы, это также обеспечит тестируемость и статический ана
лиз временных диаграмм.
2.2 Управляющие импульсы должны быть обработаны со специальной предосторожностью.
3 Предотвращение связи сигналов данных с синхросигналами повышает тестируемость, воспроизводимость
между данными до и после компоновки и уровень соответствия поведения на уровне межрегистровых пересылок.
4 Избыточная логика не является тестируемой и ев необходимо избегать:
Связьctnwve даты*оаыкофовмгнялвммИзбыточная попев
5Необходимо избегать обратные связи в комбинационной логике, потому что это ведет к нестабильности
проекта, и он не будет тестируемым.
j 4>CLK
а х
77