hls工作机制

设计流程
C代码风格
循环的优化方法
数组优化方法
IO端口实现方式

BACKGROUND

FPGA

  1. PL
    CLB 存储 dsp运算单元
  2. 布线
  3. 可编程IO口

PL逻辑单元

在7系列的FPGA中,一个CLB中有两个Slice,Slice中包含4个LUT6、3个数据选择器MUX、两个独立进位链(Carry4,Ultrascale是CARRY8)和8个触发器。

CLB(LUT、MUX、进位链、FF)

ALU算术逻辑单元(DSP48)

存储单元(BRAM大 LUT in SLICEM <1Kb )

BRAM

  • 36kb BRAM
  • 36kb FIFO
  • 2*18kb BRAM
  • 18kb BRAM 18 kb FIFO
    配置模式
  • 单端口RAM
  • 双端口RAM
  • 真双端口RAM
  • 单端口ROM
  • 双端口ROM
  • FIFO
    数组 可以设置

需要清楚PL ALU MEMORY 的功能 、资源与算法代码的对应 消耗的资源

HLS工作机制

CAD CAE EDA(verilog )
ESL(electronic system level)

  • vivado HLS
  • system generator

时序(省出来的)和并行性(硬件电路),包含设计和测试,因此,生成的HDL代码无法去优化

C到HDL阶段

  • 调度(scheduling)
  • 控制逻辑的提取(control logic extraction)(每个时钟周期的操作和操作需要几个时钟,是否可以并行操作。通常生成状态机)
  • 映射(binding) 每个操作需要用什么资源去实现

你可能感兴趣的:(HLS)