Синтез HDL и свойства автоматизации рабочего процесса

Интегрируйте сторонние инструменты EDA в рабочий процесс проекта фильтра

С синтезом и свойствами автоматизации рабочего процесса, можно включить и настроить генерацию файлов скрипта для сторонних инструментов Electronic Design Automation (EDA).

Эти скрипты позволяют вам скомпилировать, моделировать и синтезировать сгенерированный HDL-код. Можно изменить команды, которые кодер распечатывает к скриптам путем установки свойств на этой странице. Кодер передает значения свойств fprintf, чтобы создать скрипт. Можно использовать управляющие символы, поддержанные функцией fprintf. Например, '\n' вставляет новую строку в файл скрипта.

Задайте эти свойства как пары, разделенные запятой аргументов Name,Value к функции generatehdl. Name является именем свойства, и Value является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' '). Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Например:

fir = dsp.FIRFilter('Structure','Direct form antisymmetric');
generatehdl(fir,'InputDataType',numerictype(1,16,15),'VHDLLibraryName','my_work');

Сгенерируйте скрипты

развернуть все

Включите генерацию скриптов для инструментов EDA, заданных как одно из следующего:

  • 'on' — Кодер генерирует скрипт компиляции для Mentor Graphics® ModelSim®. Кроме того:

    • Если свойство GenerateHDLTestBench установлено в 'on', кодер генерирует скрипты компиляции и симуляции для испытательного стенда.

    • Если свойство HDLSynthTool установлено в значение кроме 'none', кодер генерирует скрипт синтеза.

  • 'off' Отключает генерацию скриптов, включая компиляцию, симуляцию и скрипты синтеза.

Смотрите интеграцию со сторонними инструментами EDA.

Скрипты компиляции

развернуть все

Имя библиотеки, используемое в разделе инициализации скрипта компиляции, заданного как 'work', вектор символов или скаляр строки. Используйте это свойство избежать конфликтов по совпадению имен библиотеки с вашим существующим кодом VHDL. Кодер вставляет это имя в значение свойства HDLCompileInit. По умолчанию кодер генерирует спецификацию библиотеки 'vlib work/n'.

Постфикс к имени файла скрипта компиляции, заданного как '_compile.do', вектор символов или скаляр строки. Кодер выводит имя скрипта путем добавления этого постфикса к сгенерированному имени фильтра или имени испытательного стенда. Например, если сгенерированным именем фильтра является my_design, кодер добавляет постфиксный _compile.do, чтобы сформировать имя my_design_compile.do.

Раздел Initialization скрипта компиляции, заданного как 'vlib %s\n', вектор символов или скаляр строки. Кодер распечатывает эту команду к началу скрипта компиляции. Неявный аргумент, %s, является именем библиотеки, заданной свойством VHDLLibraryName. По умолчанию это свойство генерирует спецификацию библиотеки 'vlib work/n'. Если вы компилируете свой проект фильтра с кодом от других библиотек, обновляете свойство VHDLLibraryName избежать конфликтов по совпадению имен библиотеки.

Команда, записанная в скрипт компиляции для каждого файла Verilog, заданного как 'vlog %s %s\n', вектор символов или скаляр строки. Эта команда добавляет сгенерированный исходный файл HDL в список файлов, которые будут скомпилированы. Кодер распечатывает эту команду к скрипту однажды для каждого сгенерированного файла HDL. Первый неявный аргумент, %s, принимает значение свойства SimulatorFlags. Второй неявный аргумент является именем файла текущего модуля.

Команда, записанная в скрипт компиляции для каждого файла VHDL, заданного как 'vcom %s %s\n', вектор символов или скаляр строки. Эта команда добавляет сгенерированный исходный файл HDL в список файлов, которые будут скомпилированы. Кодер распечатывает эту команду к скрипту однажды для каждого сгенерированного файла HDL. Первый неявный аргумент, %s, принимает значение свойства SimulatorFlags. Второй неявный аргумент является именем файла текущей сущности.

Опции средства моделирования, заданные как '', вектор символов или скаляр строки. Задайте опции, которые характерны для вашего приложения и средства моделирования, которое вы используете. Например, если вы используете 1076-1993 компилятора VHDL, задаете флаг '-93'. Кодер добавляет флаги, которые вы задаете с этой опцией к команде компиляции в сгенерированных скриптах инструмента EDA. Свойства HDLCompileVHDLCmd или HDLCompileVerilogCmd определяют команду компиляции.

Раздел Termination скрипта компиляции, заданного как '', вектор символов или скаляр строки. Кодер распечатывает эту последовательность символов в конец скрипта компиляции.

Скрипты симуляции

развернуть все

Постфикс к имени файла скрипта симуляции, заданного как '_sim.do', вектор символов или скаляр строки. Кодер выводит имя скрипта путем добавления этого постфикса к сгенерированному имени испытательного стенда. Например, если именем испытательного стенда является my_design_tb, кодер добавляет постфиксный _sim.do, чтобы сформировать имя my_design_tb_sim.do.

Зависимости

Это свойство применяется только, когда свойства EDAScriptGeneration и GenerateHDLTestBench установлены в 'on'.

Раздел Initialization скрипта симуляции, заданного как 'onbreak resume\nonerror resume\n', вектор символов или скаляр строки. Кодер распечатывает эту команду к началу скрипта симуляции.

Зависимости

Это свойство применяется только, когда свойства EDAScriptGeneration и GenerateHDLTestBench установлены в 'on'.

Команда записана в скрипт симуляции, заданный как 'vsim -novopt %s.%s\n', вектор символов или скаляр строки. Первый неявный аргумент, %s, является именем библиотеки. Второй неявный аргумент является сгенерированным именем испытательного стенда. Для Verilog название библиотеки является 'work' и не может быть изменено. Для VHDL имя библиотеки является значением свойства VHDLLibraryName. Если вы компилируете свой проект фильтра с кодом от других библиотек, обновляете VHDLLibraryName, чтобы избежать конфликтов по совпадению имен библиотеки.

Зависимости

Это свойство применяется только, когда свойства EDAScriptGeneration и GenerateHDLTestBench установлены в 'on'.

Просматривающая форму волны команда записана в скрипт симуляции, заданный как 'add wave sim:%s\n', вектор символов или скаляр строки. Неявный аргумент, %s, является командой, которая добавляет пути прохождения сигнала для входных сигналов верхнего уровня DUT, выходных сигналов, и выводит ссылочные сигналы.

Зависимости

Это свойство применяется только, когда свойства EDAScriptGeneration и GenerateHDLTestBench установлены в 'on'.

Раздел Termination скрипта симуляции, заданного как 'run -all\n', вектор символов или скаляр строки. Кодер распечатывает эту команду в конец скрипта симуляции.

Зависимости

Это свойство применяется только, когда свойства EDAScriptGeneration и GenerateHDLTestBench установлены в 'on'.

Скрипты синтеза

развернуть все

Сгенерируйте скрипт для инструмента синтеза, заданного как одно из следующих.

Значение HDLSynthToolИнструмент синтеза
'none'Нет данных. Кодер не генерирует скрипт синтеза.
'Vivado'

Xilinx® Vivado®

'ISE'Xilinx ISE
'Libero'

Microsemi® Libero®

'Precision'Точность Mentor Graphics
'Quartus'Altera® Quartus II
'Synplify'

Synopsys® Synplify Pro®

'Custom'Кодер генерирует скрипт, который поддерживает ваш инструмент, на основе настроек HDLSynthCmd, HDLSynthInit и свойств HDLSynthTerm.

При генерации скрипта кодер использует специфичные для инструмента значения, установленные HDLSynthCmd, HDLSynthInit и свойствами HDLSynthTerm. Настройте эти свойства согласно своему целевому устройству и ограничениям.

Зависимости

Это свойство применяется только, когда свойство EDAScriptGeneration установлено в 'on'.

Постфикс к имени файла скрипта синтеза, заданного как вектор символов или скаляр строки. Кодер выводит имя скрипта путем добавления этого постфикса к сгенерированному имени фильтра.

Постфиксное значение по умолчанию зависит от инструмента синтеза, заданного свойством HDLSynthTool. Например, если значением HDLSynthTool является 'Synplify', то значения по умолчанию HDLSynthFilePostfix к '_synplify.tcl'. Поэтому, если сгенерированным именем фильтра является my_design, кодер добавляет постфиксный _synplify.tcl, чтобы сформировать имя файла скрипта синтеза my_design_synplify.tcl.

Значение HDLSynthToolЗначение HDLSynthFilePostfix по умолчанию
noneНет данных
'Vivado''_vivado.tcl'
'ISE''_ise.tcl'
'Libero''_libero.tcl'
'Precision''_precision.tcl'
'Quartus''_quartus.tcl'
'Synplify''_synplify.tcl'
'Custom''_custom.tcl'

Зависимости

Это свойство применяется только, когда свойство EDAScriptGeneration установлено в 'on', и свойство HDLSynthTool установлено в значение кроме 'none'.

Раздел Initialization скрипта синтеза, заданного как вектор символов или скаляр строки. Значение по умолчанию этого свойства зависит от инструмента синтеза, заданного свойством HDLSynthTool. Например, если вы устанавливаете HDLSynthTool на 'ISE', это свойство значения по умолчанию к:

set src_dir [pwd]\nset prj_dir "synprj"\n
file mkdir ../$prj_dir\n
cd ../$prj_dir\n
project new %s.xise\n
project set family Virtex4\n
project set device xc4vsx35\n
project set package ff668\n
project set speed -10\n
Неявный аргумент, %s, является модулем верхнего уровня или именем сущности.

Зависимости

Это свойство применяется только, когда свойство EDAScriptGeneration установлено в 'on', и свойство HDLSynthTool установлено в значение кроме 'none'.

Команда, записанная в скрипт синтеза для каждого файла HDL, заданного как вектор символов или скаляр строки. Команда добавляет сгенерированный исходный файл HDL в список файлов, которые будут скомпилированы. Кодер распечатывает эту команду к скрипту однажды для каждого сгенерированного файла HDL. Значение по умолчанию этого свойства зависит от инструмента синтеза, заданного свойством HDLSynthTool. Например, когда HDLSynthTool установлен в 'Quartus', это свойство значения по умолчанию к 'set_global_assignment -name %s_FILE "$src_dir/%s"\n'. Первым неявным аргументом является TargetLanguage. Второй неявный аргумент является именем файла HDL.

Зависимости

Это свойство применяется только, когда свойство EDAScriptGeneration установлено в 'on', и свойство HDLSynthTool установлено в значение кроме 'none'.

Раздел Termination скрипта синтеза, заданного как вектор символов или скаляр строки. Кодер распечатывает эту последовательность символов в конец скрипта синтеза. Значение по умолчанию зависит от инструмента синтеза, заданного свойством HDLSynthTool. Например, если вы устанавливаете HDLSynthTool на 'Synplify', это свойство значения по умолчанию к:

set_option -technology VIRTEX4\n
set_option -part XC4VSX35\n
set_option -synthesis_onoff_pragma 0\n
set_option -frequency auto\n
project -run synthesis\n

Зависимости

Это свойство применяется только, когда свойство EDAScriptGeneration установлено в 'on', и свойство HDLSynthTool установлено в значение кроме 'none'.

Советы

Если вы используете функциональный fdhdltool, чтобы сгенерировать HDL-код, можно установить соответствующие свойства в диалоговом окне Generate HDL.

СвойствоМестоположение в диалоговом окне
Compilation scriptВкладка EDA Tool Scripts, левая панель. (свойство VHDLLibraryName не имеет соответствующей опции в диалоговом окне.)
Simulation scriptВкладка EDA Tool Scripts, левая панель. К флагам симуляции доступа смотрите вкладку Test Bench> Configuration.
Synthesis scriptВкладка EDA Tool Scripts, левая панель.