# embblk.latency.cordicSqrtHDLOptimizedLatency

Compute throughput and latency of Systolic QR Decomposition block

Since R2024a

## Syntax

``[latency,nIterations] = embblk.latency.cordicSqrtHDLOptimizedLatency(u,nIterPerReg)``
``[latency,nIterations] = embblk.latency.cordicSqrtHDLOptimizedLatency(u,nIterPerReg,maximumShiftValue)``

## Description

````[latency,nIterations] = embblk.latency.cordicSqrtHDLOptimizedLatency(u,nIterPerReg)` returns the latency and total number of iterations of the CORDIC Square Root HDL Optimized block. This computation depends on the data type of the input `u` to the block, number of iterations per pipeline register `nIterPerReg`, and the CORDIC maximum shift value. When the block parameter Automatically select CORDIC maximum shift value based on input word length is selected, the automatically selected value for the CORDIC maximum shift value is used to compute block latency. Latency is defined as the number of clock cycles between the input and the corresponding output.```

example

````[latency,nIterations] = embblk.latency.cordicSqrtHDLOptimizedLatency(u,nIterPerReg,maximumShiftValue)` specifies the CORDIC maximum shift value `maximumShiftValue` to use for the latency computation when the block parameter Automatically select CORDIC maximum shift value based on input word length is deselected.```

## Examples

collapse all

Define input value `u`, the number of iterations per pipeline register, and the CORDIC maximum shift value. Compute the latency and total number of iterations of the CORDIC Square Root HDL Optimized block for these inputs.

```u = fi(1,1,17,10); nIterPerReg = 1; maximumShiftValue = 10; [latency,nIterations] = embblk.latency.cordicSqrtHDLOptimizedLatency(u,nIterPerReg,maximumShiftValue)```
```latency = 18 nIterations = 16```

## Input Arguments

collapse all

Input `u` to CORDIC Square Root HDL Optimized block, specified as a non-negative real-valued scalar. Latency is returned only for binary-point scaled fixed-point data types because this is a requirement for HDL code generation.

Data Types: `single` | `double` | `fi`

Number of CORDIC iterations to perform in pipeline stage, specified as a positive integer-valued scalar.

Maximum shift value of hyperbolic vectoring CORDIC, specified as a positive integer-valued scalar.

## Output Arguments

collapse all

Latency of the CORDIC Square Root HDL Optimized block, returned as a scalar. Latency is defined as the number of clock cycles between the input and the corresponding output.

Total number of iterations of the CORDIC Square Root HDL Optimized block, returned as a scalar.

## Version History

Introduced in R2024a