Этот пример показывает, как создать целевую настройку с плавающей точкой с нативной поддержкой с плавающей точкой в HDL Coder, и затем сгенерировать код.
Создайте целевую настройку с плавающей точкой
Чтобы создать настройку с плавающей точкой, используйте hdlcoder.createFloatingPointTargetConfig.
fpconfig =
FloatingPointTargetConfig with properties:
Library: 'NativeFloatingPoint'
LibrarySettings: [1×1 fpconfig.NFPLatencyDrivenMode]
IPConfig: [1×1 hdlcoder.FloatingPointTargetConfig.IPConfig]
Задайте пользовательские настройки библиотеки
Опционально, чтобы настроить настройку с плавающей точкой, задайте пользовательские настройки библиотеки.
ans =
NFPLatencyDrivenMode with properties:
LatencyStrategy: 'MIN'
HandleDenormals: 'off'
MantissaMultiplyStrategy: 'NoMultiplierFullAddShift'
Version: '1.0.0'
Просмотрите задержку нативных операторов с плавающей точкой
Отображения объекта IPConfig максимальные значения задержки минимума AMD операторов с плавающей точкой.
ans =
Name DataType MaxLatency MinLatency
__________ _______________________ __________ __________
'ABS' 'SINGLE' 0 0
'ADDSUB' 'SINGLE' 12 7
'ATAN' 'SINGLE' 36 36
'ATAN2' 'SINGLE' 42 42
'CONVERT' 'NUMERICTYPE_TO_SINGLE' 6 6
'CONVERT' 'SINGLE_TO_NUMERICTYPE' 6 6
'COS' 'SINGLE' 27 27
'DIV' 'SINGLE' 32 32
'EXP' 'SINGLE' 23 23
'FIX' 'SINGLE' 3 3
'LOG' 'SINGLE' 20 20
'MINMAX' 'SINGLE' 3 3
'MOD' 'SINGLE' 0 0
'MUL' 'SINGLE' 8 8
'POW2' 'SINGLE' 2 2
'RECIP' 'SINGLE' 19 19
'RELOP' 'SINGLE' 3 3
'REM' 'SINGLE' 0 0
'ROUNDING' 'SINGLE' 5 5
'RSQRT' 'SINGLE' 17 17
'SIGNUM' 'SINGLE' 0 0
'SIN' 'SINGLE' 27 27
'SINCOS' 'SINGLE' 27 27
'SQRT' 'SINGLE' 28 28
'UMINUS' 'SINGLE' 0 0
Сгенерируйте код
### Generating HDL for 'sfir_single/symmetric_fir'.
### Starting HDL check.
### The code generation and optimization options you have chosen have introduced additional pipeline delays.
### The delay balancing feature has automatically inserted matching delays for compensation.
### The DUT requires an initial pipeline setup latency. Each output port experiences these additional delays.
### Output port 0: 30 cycles.
### Output port 1: 30 cycles.
### Begin VHDL Code Generation for 'sfir_single'.
### Working on sfir_single/symmetric_fir/nfp_add_comp as C:\NativeFloatingPoint\hdlsrc\sfir_single\nfp_add_comp.vhd.
### Working on sfir_single/symmetric_fir/nfp_mul_comp as C:\NativeFloatingPoint\hdlsrc\sfir_single\nfp_mul_comp.vhd.
### Working on sfir_single/symmetric_fir as C:\NativeFloatingPoint\hdlsrc\sfir_single\symmetric_fir.vhd.
### Generating package file C:\NativeFloatingPoint\hdlsrc\sfir_single\symmetric_fir_pkg.vhd.
### Creating HDL Code Generation Check Report file://C:\NativeFloatingPoint\hdlsrc\sfir_single\symmetric_fir_report.html
### HDL check for 'sfir_single' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.
Сгенерированный код VHDL сохранен в папке hdlsrc
.