HLS开发学习-02-HLS工作机制

本文参考了高亚军老师的课程,简单介绍下HLS的流程

ESL的发展

在这里插入图片描述
电子设计经过了CAD–CAE–EDA的发展过程,并在后期提出来ESL概念,其实说到底,这也就是科学技术发展到一定水平后完全可以由机器来代替人们完成之前的复杂的过程,HLS的本质就是为了缩短开发的周期,加快算法的实现。我们不太需要掌握具体的底层的语法即可完成设计,对于优化的过程来说,我们也只需在高层次的语言比如C C++上进行修改优化。而对于xilinx的工具链来说,有两种进行这样流程的实现。HLS和system generate

HLS开发好处

在这里插入图片描述
以往的硬件设计,我们必须来掌握Verilog 或者 VHDL的编写的技巧,底层设计的核心,也就是并行性时序。这也是有别于高层次语言的重要的点。
接触Verilog时间较长的人都知道,在Verilog中,其代码并不是一条指令,而是真真正正的电路。所以在开发的时候要清晰背后的代码映射出来的真正的电路结构。
使用HLS,则对我们这方面的要求较低,我们之前考虑的这些将由软件代替,我们只需要进行高层次的C代码的编写和测试即可。

HLS开发的阶段

C到HDL阶段,HLS帮我们完成模拟的是下面的两个阶段操作。
在这里插入图片描述

1.调度(scheduling)和控制逻辑的提取(control logic extraction)

每个时钟周期的操作和操作需要几个时钟,进行对代码实现的分工,就像值班表。
判断是否可以并行操作进行电路优化
通常生成状态机控制逻辑

2.映射(binding)

每个操作需要用什么资源去实现,分配相对应的资源。
就如安排好了值班表,需要不同业务的人去值班一样。

开发例子

调度(scheduling)例子

每个时钟周期的操作和操作需要几个时钟,进行对代码实现的分工
在这里插入图片描述

控制逻辑的提取(control logic extraction)例子

判断是否可以并行操作进行电路优化
通常生成状态机控制逻辑

有四个状态,在C0状态执行b+c,C1状态产生x和数组的地址,
C2状态执行相应的乘法操作,C3状态将结果写入y数组的对应位,
如此循环几次,直到到达循环边界退出循环。需要注意的是,
生成的控制状态(左下)和状态机(右下)不是一一对应的,但它们之间非常接近。

在这里插入图片描述

由流程图到FSM例子

在这里插入图片描述

总结

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41445387/article/details/105871172
HLS
今日推荐