Методы программирования в абсолютных адресах

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

1. Генерал соглашения о присвоении имен

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

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

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

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

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

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

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

Используйте VHDL file extension option в HDL Workflow Advisor или VHDLFileExtension свойство из командной строки.

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

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

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

1.A.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.A.3vb
Сообщение
VHDL: Do not use standard VHDL names.

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

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

1.A.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.A.5
Ошибка

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

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

Например, имена foo и Foo не может быть в том же осциллографе.

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

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

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

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

HDL Coder генерирует код, который выполняет это правило для Verilog и VHDL.

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

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

1.A.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.A.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. Нашей эры файл, пакет и соглашения о присвоении имен параметра

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

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

Сгенерированные включают соответствие файлов эти расширения для испытательного стенда.

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

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

По умолчанию сгенерированным постфиксом файла пакета является _pkg.

В диалоговом окне Configuration Parameters, на HDL Code Generation> Global Settings> панель General , задают Package postfix к _pac.

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

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

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

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

VHDL: Constants should not be redefined.

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

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

HDL Coder не задает битную ширину, больше, чем 32 бита в сгенерированном коде.

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

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

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

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

1. Регистр A.E и соглашения о присвоении имен часов

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

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

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

В диалоговом окне Configuration Parameters, на HDL Code Generation> панель Global Settings, с помощью clock input port, reset input port и опции clock enable input port, обновляют имена для часов, сбрасывают и включают сигналы соответственно. Имена часов сигнала должны содержать clk или ck, имена сброса сигнала должны содержать rstx, resetx, rst_x, или reset_x, и часы включают имена сигнала, должен содержать en.

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

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

VHDL: Architecture name must contain RTL.

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

Во вкладке HDL Code Generation> Global Settings> General обновите VHDL architecture name, чтобы использовать имя архитектуры, которое содержит RTL.

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

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

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

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

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

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

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 Coder генерирует это сообщение.

Обновите свой проект, чтобы использовать один сигнал часов. В HDL Code Generation> панель Global Settings, набор Clock inputs к Single, и Clock edge к 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 Coder не создает фиксаторы и выполняет это правило.

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

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

Verilog/VHDL: Remove combinational loops.

HDL Coder не создает комбинационные циклы.

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

1. C инструкции для начального сброса

1. Триггер C.A синхронизирует ограничения

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

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

HDL Coder не использует асинхронные сигналы сброса, как не сброшено или синхронные сигналы сброса.

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

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

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

HDL Coder добавляет управляющую логику сброса вне DUT и не генерирует и асинхронный сброс и синхронные сигналы сброса.

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

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

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

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

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

1. Соглашения сброса C.B

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

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

HDL Coder не пропускает асинхронный набор или сбрасывать сигналы.

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

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 Coder использует только начальные сигналы сброса для асинхронного входа сброса триггера.

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

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 Coder генерирует код, который выполняет это правило, потому что 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 Coder не использует выход триггеров как часы других триггеров или триггерные сигналы часов, когда нечасы сигнализируют.

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

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

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

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

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

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

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

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

Ваша модель Simulink использует несколько сигналов часов.

Обновите свой проект, чтобы использовать один сигнал часов. В HDL Code Generation> панель Global Settings, набор Clock inputs к 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 Coder генерирует отдельные модули для DUT, RAM, синхронизируя контроллер, так, чтобы это выполнило это правило.

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

Смотрите также

Свойства

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

Больше о