High-Level Synthesis Basics

High-level synthesis includes the following phases:
•Scheduling
Determines which operations occur during each clock cycle based on:
° Length of the clock cycle or clock frequency
° Time it takes for the operation to complete, as defined by the target device
° User-specified optimization directives
If the clock period is longer or a faster FPGA is targeted, more operations are completed
within a single clock cycle, and all operations might complete in one clock cycle.
Conversely, if the clock period is shorter or a slower FPGA is targeted, high-level
synthesis automatically schedules the operations over more clock cycles, and some
operations might need to be implemented as multicycle resources.
•Binding
Determines which hardware resource implements each scheduled operation. To
implement the optimal solution, high-level synthesis uses information about the target
device.
•Control logic extraction
Extracts the control logic to create a finite state machine (FSM) that sequences the
operations in the RTL design.

High-level synthesis synthesizes the C code as follows:
• Top-level function arguments synthesize into RTL I/O ports
• C functions synthesize into blocks in the RTL hierarchy
If the C code includes a hierarchy of sub-functions, the final RTL design includes a
hierarchy of modules or entities that have a one-to-one correspondence with the
original C function hierarchy. All instances of a function use the same RTL
implementation or block.
•Loops in the C functions are kept rolled by default
When loops are rolled, synthesis creates the logic for one iteration of the loop, and the
RTL design executes this logic for each iteration of the loop in sequence. Using
optimization directives, you can unroll loops, which allows all iterations to occur in
parallel.
•Arrays in the C code synthesize into block RAM or UltraRAM in the final FPGA design
If the array is on the top-level function interface, high-level synthesis implements the
array as ports to access a block RAM outside the design.

High-level synthesis creates the optimal implementation based on default behavior,
constraints, and any optimization directives you specify. You can use optimization directives
to modify and control the default behavior of the internal logic and I/O ports. This allows
you to generate variations of the hardware implementation from the same C code.

To determine if the design meets your requirements, you can review the performance
metrics in the synthesis report generated by high-level synthesis. After analyzing the
report, you can use optimization directives to refine the implementation. The synthesis
report contains information on the following performance metrics:

• Area: Amount of hardware resources required to implement the design based on the
resources available in the FPGA, including look-up tables (LUT), registers, block RAMs,
and DSP48s.
• Latency: Number of clock cycles required for the function to compute all output values.
• Initiation interval (II): Number of clock cycles before the function can accept new input
data.
• Loop iteration latency: Number of clock cycles it takes to complete one iteration of the
loop.
• Loop initiation interval: Number of clock cycle before the next iteration of the loop
starts to process data.
• Loop latency: Number of cycles to execute all iterations of the loop.

 

Reference:

1.Xilinx UG902

转载于:https://www.cnblogs.com/wordchao/p/10943186.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值