exponenta event banner

Основные методы кодирования

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

1.A Общие соглашения по присвоению имен

1.A.A Соглашения о проектировании и именовании верхнего уровня

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

Verilog: Source file name should be same as the name of the module in the file.

По умолчанию кодер HDL генерирует код с одинаковым именем модуля и файла. Если вы используете BlackBox архитектура подсистемы и генерирующий код, имена источников и имена файлов могут отличаться.

Если вы используете BlackBox убедитесь, что имя исходного файла и имя модуля совпадают.

VHDL: File names containing entities should have the extension .vhd or .vhdl.

Имя исходного файла должно использовать определенные рекомендуемые правила именования и расширения файлов.

Используйте опцию расширения файла VHDL в помощнике по рабочим процессам HDL или VHDLFileExtension из командной строки.

1. A.2
Сообщение
Verilog/VHDL: Identifiers and names should follow recommended naming convention.

Имя в конструкции не начинается с буквы или содержит символ, отличный от цифры, буквы или подчеркивания.

Обновите имена в вашем дизайне так, чтобы они начинались с буквы алфавита (a-z, A-Z) и содержать только буквенно-цифровые символы (a-z, A-Z, 0-9) и подчеркивания (_).

1. A.3
Сообщение
Verilog/VHDL: Keywords in Verilog-HDL(IEEE1364), SystemVerilog(v3.1a), and keywords in VHDL(IEEE1076.X) must not be used.

Ключевые слова Verilog ®, SystemVerilog или VHDL ® находятся в именах проекта.

Обновите имена в конструкции таким образом, чтобы они не содержали ключевые слова Verilog, SystemVerilog или VHDL.

Эту проверку правил можно отключить с помощью HDLKeywords свойство объекта настройки стандарта кодирования HDL.

1. A.3vb
Сообщение
VHDL: Do not use standard VHDL names.

Кодер HDL не использует стандартные имена VHDL.

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

1. A.4
Ошибка

Verilog/VHDL: Do not use names starting with VDD, VSS, VCC, GND or VREF.

Имя или имена в конструкции не используют стандартное соглашение об именовании.

Обновите имена в вашем дизайне так, чтобы они начинались с буквы алфавита (a-z, A-Z) и содержать только буквенно-цифровые символы (a-z, A-Z, 0-9) и подчеркивания (_).

1. A.5
Ошибка

Verilog/VHDL: Do not use case variants of name in the same scope.

Два или более имен в конструкции в пределах одной области действия идентичны, за исключением случая.

Например, имена foo и Foo не может находиться в одной области.

Обновите имена в проекте таким образом, чтобы ни одно из двух имен в одной области не отличалось только в случае.

Эту проверку правил можно отключить с помощью DetectDuplicateNamesCheck свойство объекта настройки стандарта кодирования HDL.

1. A.6
Предупреждение

Verilog: Primary port names or module names must follow recommended naming convention.

Кодер HDL генерирует код, соответствующий этому правилу для Verilog и VHDL.

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

VHDL: Component name should be same as its corresponding entity name.

1. A.9
Предупреждение
Verilog/VHDL: Top-level module/entity and port names should be less than or equal to 16 characters in length and not be mixed-case.

Длина имени модуля, объекта или порта верхнего уровня в сгенерированном коде превышает 16 символов, либо используются буквы со смешанным регистром.

Обновите указанное имя в конструкции так, чтобы оно было меньше или равно 16 символам, а все буквы были строчными. все буквы должны быть либо все прописные, либо все строчные.

Это правило можно настроить с помощью ModuleInstanceEntityNameLength свойство объекта настройки стандарта кодирования HDL.

1.A.B Соглашения об именовании модулей

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

Verilog: Module and Instance names should be between 2 and 32 characters in length. The instance names including hierarchy should be less than or equal to 128 characters in length.

Имя модуля, экземпляра или сущности в созданном коде имеет длину менее 2 символов или более 32 символов.

Обновите указанное имя в конструкции таким образом, чтобы оно имело длину от 2 до 32 символов.

Это правило можно настроить с помощью ModuleInstanceEntityNameLength свойство объекта настройки стандарта кодирования HDL.

VHDL: Entity names and instance names should be between 2 and 32 characters in length. The instance names including hierarchy should be less than or equal to 128 characters in length.

1.A.C Соглашения об именовании сигналов

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

Verilog: Signal names, port names, parameter names, define names and function names should be between 2 and 40 characters in length.

Длина имени сигнала, порта, параметра, определения или функции в сгенерированном коде составляет менее 2 символов или более 40 символов.

Обновите имена функций или подсистем в конструкции, чтобы они имели длину от 2 до 40 символов.

Это правило можно настроить с помощью SignalPortParamNameLength свойство объекта настройки стандарта кодирования HDL.

VHDL: Signal names, variable names, type names, label names, and function names should be between 2 and 40 characters in length.

1.A.D Соглашения по именованию файлов, пакетов и параметров

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

Verilog: Include files must have extensions that match ".h", ".vh",".inc", and ".h", ".inc", "ht", ".tsk" for testbench.

Созданные файлы включения соответствуют этим расширениям для testbench.

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

VHDL: Package file name should be followed by "pac.vhd".

По умолчанию создается постфикс файла пакета _pkg.

В диалоговом окне «Параметры конфигурации» на панели «Создание кода HDL» > «Глобальные параметры» > «Общие» укажите постфикс пакета для _pac.

1. D.4
Предупреждение

Verilog: Macros defined outside a module must not be used in the module.

Кодер HDL не генерирует макросы в коде Verilog и не переопределяет константы в коде VHDL.

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

VHDL: Constants should not be redefined.

1. D.9
Предупреждение

Verilog: Bit-width must be specified for parameters with more than 32 bits.

Кодер HDL не указывает битовую ширину, превышающую 32 бита в сгенерированном коде.

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

VHDL: Generic must not be used at top-level module.

При использовании дженерик-программ в модуле верхнего уровня или при наличии параметров маски в проекте и установке MaskParameterAsGeneric свойство, HDL Coder сообщает об этом нарушении.

Если в проекте имеются параметры маски, установите MaskParameterAsGeneric кому off.

1.A.E Соглашения об именовании регистров и синхросигналов

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

Verilog/VHDL: Clock, Reset, and Enable signals should follow recommended naming convention.

Сигналы синхронизации, сброса и включения не используют рекомендуемое соглашение об именовании.

В диалоговом окне Configuration Parameters на панели HDL Code Generation > Global Settings (Создание кода HDL > Глобальные настройки), используя параметры входного порта синхронизации, входного порта сброса и входного порта включения синхронизации, обновите имена сигналов синхронизации, сброса и включения соответственно. Имена тактовых сигналов должны содержать clk или ck, имена сигналов сброса должны содержать rstx, resetx, rst_x, или reset_x, а имена сигналов включения синхронизации должны содержать en.

1.A.F Соглашения об именовании архитектуры

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

VHDL: Architecture name must contain RTL.

В сгенерированном коде VHDL имя архитектуры не содержит RTL.

На вкладке Создание кода HDL > Глобальные настройки > Общие обновите имя архитектуры VHDL, чтобы использовать имя архитектуры, содержащее RTL.

1. F.4
Предупреждение

VHDL: An entity and its architecture must be described in the same file.

По умолчанию кодер HDL описывает сущность и архитектуру кода VHDL в одном файле.

Если установить SplitEntityArch свойство для onсгенерированный код VHDL описывает сущность и архитектуру в отдельных файлах, поэтому HDL Coder сообщает предупреждение.

Набор SplitEntityArch выключить, чтобы кодер HDL описывал сущность и архитектуру кода VHDL в одном файле.

1.В Общие руководящие принципы для часов и сбросов

1.B.A Ограничения тактового сигнала

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

VHDL: Design should have only a single clock and use only one edge of the clock.

В проекте используется несколько фронтов тактового сигнала или содержится несколько тактовых сигналов.

Если для свойства ClockInputs задано значение multiple или использовать TriggerAsClock чтобы использовать триггерный сигнал для запускаемой подсистемы в качестве тактового сигнала, кодер HDL генерирует это сообщение.

Обновите конструкцию, чтобы использовать один тактовый сигнал. На панели «Создание кода HDL» > «Глобальные настройки» установите для параметра «Вход часов» значение Singleи граница тактового сигнала для Rising или Falling.

1. B.A.2
Ошибка

Verilog/VHDL: Do not create an RS latch or flip-flop using primitive cells such as AND, OR.

Кодер HDL не создает защелки и соответствует этому правилу.

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

1. B.A.3
Ошибка

Verilog/VHDL: Remove combinational loops.

Кодер HDL не создает комбинированных циклов.

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

1.C Рекомендации по начальному сбросу

1.C.A Зависимости тактового сигнала триггера

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

Verilog/VHDL: Do not use asynchronous set/reset signals other than initial reset.

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

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

1. C.A.6
Ошибка

Verilog/VHDL: Signals must not be used as both asynchronous reset and synchronous reset.

Кодер HDL добавляет логику управления сбросом вне DUT и не генерирует как асинхронные, так и синхронные сигналы сброса.

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

1. C.A.7
Предупреждение

Verilog/VHDL: A flip-flop must not have both asynchronous set and asynchronous reset.

Кодер HDL не генерирует код с асинхронными сигналами установки и сброса.

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

1.C.B Сброс условных обозначений

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

Verilog/VHDL: Asynchronous resets or sets must not be gated.

Кодер HDL не формирует асинхронные сигналы установки или сброса.

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

1. C.B.1b
Сообщение

Verilog/VHDL: Reset must be generated in separate module instantiated at top-level.

Созданный код соответствует этому правилу, поскольку DUT не содержит экземпляр сброса.

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

1. C.B.2
Предупреждение

Verilog/VHDL: Do not use signals other than initial reset for asynchronous reset input of flip-flop.

Кодер HDL использует только начальные сигналы сброса для асинхронного входа сброса триггера.

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

1.D Рекомендации для часов

1.D.A Ограничения упаковки часов

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

Verilog/VHDL: Clock should be generated in separate module or entity instantiated at top-level.

Кодер HDL генерирует код, соответствующий этому правилу, поскольку DUT не содержит экземпляра тактового сигнала.

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

1.D.C Ограничения стробирования синхросигналов

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

Verilog/VHDL: Do not use flip-flop outputs as clocks of other flip-flops and flip-flop clock signals as non-clock signals.

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

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

1. D.C.6
Сообщение

Verilog/VHDL: Do not use flip-flops with inverted edges.

Если модель Simulink ® использует блок триггерной подсистемы с восходящими и падающими триггерами и имеетTriggerAsClock включен, кодер HDL нарушает это правило.

Отключить TriggerAsClock или не использовать блоки Triggered Subsystem с восходящими и падающими триггерами в модели Simulink.

1.D.D Ограничения иерархии часов

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

Verilog: One hierarchical level should have a single clock only.

Модель Simulink использует несколько тактовых сигналов.

Обновите конструкцию, чтобы использовать один тактовый сигнал. На панели «Создание кода HDL» > «Глобальные настройки» установите для параметра «Вход часов» значение Single.

1.F Руководство по иерархическому проектированию

1.F.A Основные рекомендации по размеру блока

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

Verilog/VHDL: Clock generation, reset generation, RAM, Setup/Hold ensure buffers, and I/O cells must be a module at top-level.

Кодер HDL генерирует отдельные модули для DUT, RAM, контроллера синхронизации, чтобы он соответствовал этому правилу.

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

См. также

Свойства

Связанные примеры

Подробнее