FPGA高手论道20200401
HLS没有现在这些硬件构造语言贴近硬件感觉比较适合做算法原型验证 在未来,当FPGA成本和芯片成本极大幅度降低的时候,更容易的编程肯定会大量代替现有编程模式,就像在软件领域,java,python已经大量代替c/c++一样,就是因为现在硬件成本相对于人工成本来说更低,没必要天天花大量精力去优化内存优化性能,有那个人力成本还不如加点内存升级下cpu 个人认为FPGA的RTL级编程永远需要。FPGA芯片生产出来后资源就是确定的,就那么多,不是无限使用的。FPGA芯片结构决定了,FPGA编程跟CPU软件编程完全不同 康奈尔的Myhdl, 斯坦福的Spatial,UCB的chisel都是所谓的硬件构造语言,Chisel是商业化最好的,就跟现在写软件不写汇编一样,IC设计应该也会经历类似的事。但纠结语言本身意义不大,关键看新的工具是不是真正能够提高生产效率。在这一点上大家认识差别很大,我甚至觉得,如果新的设计模式能推广起来,一定不在传统的IC公司 生产效率是重点,除非有一种语言完胜hdl,又简单且效率还高。对于具体的一个情形,根据具体的情况,选用效率最高的方式。这种平衡不仅仅是RTL还是高级综合,还有dsp和fpga的平衡,cpu和fpga的平衡,c语言和pyson的平衡,所有所有的一切综合在一起,目标是获得比竞争对手更高的生产力 不能把软件的汇编—C,与硬件的HDL—所谓高层次语言 类比
完全两码事
CPU和FPGA芯片结构完全不一样 我们现在做架构设计,一个体会是RTL太重,虽然号称做physical aware的RTLdesign,很多问题不到PR阶段暴露不出来。于是尝试在用systemC 做架构设计,这样performance好模拟,但power和area相对就差一些 rtl级编程肯定会永远需要,就像即便现在软件编程一样有用汇编一样,只是比例问题,软件编程就是大量用java,python,部分用c/c++,极少量场景用汇编
另外,目前的fpga还是资源性能不够用,价格相对较高,相当于以前软件编程的386时代,当以后硬件里资源足够大,价格足够低的时候,这些细节可能就不在意了,可能就不需要花那么多精力去关注rtl级了 FPGA设计流程是跟ASIC是完全一样的,clock tree,floorplan,cell placement & wire route,I/O placement & constrains 所以好的架构要在最开始能看到所有的细节,这样的人可遇不可求。UCB基于chisel的CPU就比较暴力,cache大小,ways, sets, core number, L2 size,全部可选,想看PPA,拉出一堆机器跑就行,我们现在从RTL到GDS基本全自动,迭代的速度比之前是好很多了。FP是现在自动化程度比较低的步骤
页:
[1]
2