fpga开发的疑问?(关于高层次综合)
报错就是告诉你,你所调用的fft这个task没有实现,hdl设计也能直接调用fft,不过是调用fft的ip核;本质上是吧一个别人已经设计好的模块直接加入你的设计中。关于HLS的问题,学界一直挺热门,对
fpga开发的疑问?(关于高层次综合)报错就是告诉你,你所调用的fft这个task没有实现,hdl设计也能直接调用fft,不过是调用fft的ip核;本质上是吧一个别人已经设计好的模块直接加入你的设计中。
关于HLS的问题,学界一直挺热门,对于你的疑问,我觉得关键在于要理解你的工作在什么层面上:比如verilog,你是在设计硬件,是在组合那些晶体管的连接来完成你的设计;比如C语言,你是在设计软件,是用已经组合好的晶体管,来指挥这些已经连接好的晶体管完成一定的动作。
至于你觉着verilog设计困难而C语言设计简单,这还是你的工作层面的问题;C相对verilog的简单主要是因为工作是基于已经设计好的CPU来开展的,C的简单是由CPU设计的极端复杂换来的,这就好比说你觉着坐飞机去美国很轻松,走着去特别累一样,飞去美国的轻松背后隐藏着设计飞机的复杂。
关于什么时候用verilog什么时候用C的问题,我觉着要根据你的目的来选择自己工作的层面;还举飞机的例子;如果你想从北京去纽约,那肯定要选择坐飞机,但是如果你想去楼下吃顿饭,然后顺路去超市买点东西,那你肯定要走着去;因为这么近的距离飞机不划算(要买票,去机场etc)而且不方便(飞机是不可能中途给你一个人停下的)。同理,选择C语言的前提是要有一款CPU,但是CPU都是针对通用的场合来设计的,对于同时控制100个串口,同时做1024位宽的乘法这种极端的应用肯定是没有照顾到的(就好比是你打算下楼吃顿饭,然后顺便买点东西这么个性化的需求是没人给你专门规划航线的);这个时候就需要用硬件来实现这个系统了。用硬件实现一个系统的时候也有两个选择:ASIC或者FPGA,ASIC性能最佳,成本最低,但是这个成本低是有条件的,它是建立在巨大的出货量来均摊研发和流片成本上的,对于ASIC这种东西起码得10w级别的出货量才是经济的选择;如果说你的系统也就做个10几个,那么对于ASIC这种动辄千万级别的流片费来说那就得不偿失了,这个时候FPGA就成为上选。
所以,说FPGA贵,要看跟谁比,跟现成的CPU和ASIC比,那肯定是贵,但前面说了,CPU可能不适合你的应用,市面上也没有合适的ASIC;但是跟从头设计一款ASIC比,那肯定是很便宜的。说FPGA开发难度高,也要看跟谁比;跟CPU上的软件方案比,确实开发难度高,但是跟从头设计一款ASIC比(需要前端、后端、测试、封装以及复杂的EDA工具支持),这个开发难度还是很低的。
总而言之,我觉着做设计的时候,一定不要把自己限制在软件工程师,硬件工程师或者某种专门的器件上,永远记着我是在设计一个数字系统,软件 or 硬件都是实现手段而已,综合需求、成本、研发周期等等因素,选合适的那个
关于HLS的问题,学界一直挺热门,对于你的疑问,我觉得关键在于要理解你的工作在什么层面上:比如verilog,你是在设计硬件,是在组合那些晶体管的连接来完成你的设计;比如C语言,你是在设计软件,是用已经组合好的晶体管,来指挥这些已经连接好的晶体管完成一定的动作。
至于你觉着verilog设计困难而C语言设计简单,这还是你的工作层面的问题;C相对verilog的简单主要是因为工作是基于已经设计好的CPU来开展的,C的简单是由CPU设计的极端复杂换来的,这就好比说你觉着坐飞机去美国很轻松,走着去特别累一样,飞去美国的轻松背后隐藏着设计飞机的复杂。
关于什么时候用verilog什么时候用C的问题,我觉着要根据你的目的来选择自己工作的层面;还举飞机的例子;如果你想从北京去纽约,那肯定要选择坐飞机,但是如果你想去楼下吃顿饭,然后顺路去超市买点东西,那你肯定要走着去;因为这么近的距离飞机不划算(要买票,去机场etc)而且不方便(飞机是不可能中途给你一个人停下的)。同理,选择C语言的前提是要有一款CPU,但是CPU都是针对通用的场合来设计的,对于同时控制100个串口,同时做1024位宽的乘法这种极端的应用肯定是没有照顾到的(就好比是你打算下楼吃顿饭,然后顺便买点东西这么个性化的需求是没人给你专门规划航线的);这个时候就需要用硬件来实现这个系统了。用硬件实现一个系统的时候也有两个选择:ASIC或者FPGA,ASIC性能最佳,成本最低,但是这个成本低是有条件的,它是建立在巨大的出货量来均摊研发和流片成本上的,对于ASIC这种东西起码得10w级别的出货量才是经济的选择;如果说你的系统也就做个10几个,那么对于ASIC这种动辄千万级别的流片费来说那就得不偿失了,这个时候FPGA就成为上选。
所以,说FPGA贵,要看跟谁比,跟现成的CPU和ASIC比,那肯定是贵,但前面说了,CPU可能不适合你的应用,市面上也没有合适的ASIC;但是跟从头设计一款ASIC比,那肯定是很便宜的。说FPGA开发难度高,也要看跟谁比;跟CPU上的软件方案比,确实开发难度高,但是跟从头设计一款ASIC比(需要前端、后端、测试、封装以及复杂的EDA工具支持),这个开发难度还是很低的。
总而言之,我觉着做设计的时候,一定不要把自己限制在软件工程师,硬件工程师或者某种专门的器件上,永远记着我是在设计一个数字系统,软件 or 硬件都是实现手段而已,综合需求、成本、研发周期等等因素,选合适的那个
责任编辑: