Методические указания по проекту RTL

HDL Coder™ соответствует нижеследующим руководствам по методологии проекта RTL и проверяет конструкции моделирования, которые нарушают эти правила. HDL Coder сообщает о потенциальных нарушениях правил в отчете стандарта кодирования HDL. Чтобы избежать этих нарушений, смотрите рекомендации правила.

3.A Руководство по созданию библиотек функций

3.A.C сигнал, ограничения портов - I

Правило/серьезностьСообщениеПроблемаРекомендации
3.A.C.1
Предупреждение

Verilog: The order of module port decalarations and instance port connections lists should be same as the order in the module port map.

HDL Coder сохраняет порядок объявлений портов модулей и соединений портов образцов по мере их появления в исходном Simulink® DUT.

Никаких действий не требуется.

3.A.C.4a
Сообщение

Verilog/VHDL: Define only one port or signal per line in I/O, reg, and wire declaration.

HDL Coder соответствует этому правилу.

Никаких действий не требуется.

3.A.D сигнал, ограничения портов - II

Правило/серьезностьСообщениеПроблемаРекомендации
3.A.D.4–5
Предупреждение

Verilog/VHDL: Multiple assignments should not be made in one line.

Сгенерированный HDL-код содержит несколько назначений в одной линии или линиях, больше N символов. У вас есть имя или идентификатор в исходном проекте, который содержит более N символов.

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

Можно также настроить N при помощи LineLength свойство объекта стандартной индивидуальной настройки HDL-кодирования.

HDL Coder складывает длинные линии в проекте только до тех пор, пока синтаксис HDL-кода не сломан.

Verilog/VHDL: The maximum number of characters in one line should not be more than N.

3.A.F типовых ограничений использования

Правило/серьезностьСообщениеПроблемаРекомендации
3.A.F.1
Ссылка

Verilog: Generic should be used in conditional expression of if generate statement.

HDL Coder не генерирует операторы if-generate, но может генерировать операторы for-generate в сгенерированном HDL-коде.

Никаких действий не требуется.

3.B Руководство по использованию библиотек функций

3.B.B параметров, постоянные ограничения

Правило/серьезностьСообщениеПроблемаРекомендации
3.B.B.2b-4
Сообщение

Verilog: Define macros should be read using include files. Include files must be specified with more than 1 level higher relative path.

HDL Coder не генерирует макросы в HDL-коде.

Никаких действий не требуется.

3.B.B.5–7
Сообщение

Verilog: Text macros should not be nested, and constants should be defined using parameters only.

HDL Coder не генерирует макросы в HDL-коде.

Никаких действий не требуется.

3.B.C портов

Правило/серьезностьСообщениеПроблемаРекомендации
3.B.C.1
Сообщение

Verilog/VHDL: Port/Generic connections in instantiations must be made by named association rather than position association.

HDL Coder сохраняет ассоциацию портов, так что она соответствует этому правилу.

Никаких действий не требуется.

3.B.C.2
Сообщение

Verilog: Bit-width of the component port and its connected net must match.

HDL Coder обеспечивает соответствие типов и битовой ширины, чтобы оно соответствовало этому правилу.

Никаких действий не требуется.

3.B.C.3
Сообщение

VHDL: Do not use entity instantiation in the design.

HDL Coder не использует экземпляры сущностей в проекте. Сгенерированный HDL-код является обобщенным и переиспользуемым.

Никаких действий не требуется.

3.B.D типовые ограничения

Правило/серьезностьСообщениеПроблемаРекомендации
3.B.D.1
Ошибка

Verilog/VHDL: Non-integer type used in the declaration of a generic may be unsynthesizable.

Сгенерированный HDL-код содержит нецелочисленный тип данных.

Если в проекте есть типы данных с плавающей точкой, можно сопоставить их с собственными библиотеками HDL Coder с плавающей точкой, чтобы сгенерированный код не использовал типы данных с плавающей точкой.

Кроме того, измените проект так, чтобы он не использовал типы данных с плавающей точкой.

Можно отключить проверку этого правила при помощи NonIntegerTypes свойство объекта стандартной индивидуальной настройки HDL-кодирования.

3.B.D.3
Ошибка

Verilog: Do not use defparam statements.

HDL Coder соответствует этому правилу.

Никаких действий не требуется.

3.С Руководство по проекту облегчения испытаний

3.C.A тактовых импульсов - I

Правило/серьезностьСообщениеПроблемаРекомендации
3.C.A.1–4
Ошибка

Verilog/VHDL: Internal clocks and aynschronous sets/resets must be controllable from external pins.

В сгенерированном HDL-коде можно управлять часами с внешних контактов. Если у вас есть триггируемая подсистема и включите TriggerAsClock, затем триггерный сигнал становится тактовым сигналом, которым можно управлять с внешних контактов.

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

Чтобы избежать этого нарушения правил, отключите TriggerAsClock.

3.C.B ограничений черного ящика

Правило/серьезностьСообщениеПроблемаРекомендации
3.C.B.3
Ошибка

Verilog/VHDL: Do not connect the outputs of a black box to clock, reset, or tristate enable pins.

HDL Coder соединяет пакет часов с сущностью или blackbox и не изменяет его, поэтому сгенерированный код соответствует этому правилу.

Никаких действий не требуется.

3.C.C тактовых импульсов - II

Правило/серьезностьСообщениеПроблемаРекомендации
3.C.C.1
Ошибка

Verilog/VHDL: A clock must not be connected to the D input of a flip-flop.

HDL Coder не использует часы в качестве данных.

Никаких действий не требуется.

3.C.F тактовых импульсов - III

Правило/серьезностьСообщениеПроблемаРекомендации
3.C.F.2
Ошибка

Verilog/VHDL: Do not mix clock and reset lines.

HDL Coder соединяет пакет часов с сущностью или blackbox и не изменяет его, поэтому сгенерированный код соответствует этому правилу.

Никаких действий не требуется.

См. также

Свойства

Похожие примеры

Подробнее о