UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Visitor dangbinghoo
Visitor
4,176 次查看
注册日期: ‎10-08-2016

请教 vivado HLS C C++设计

转到解答

xilinx专家,你们好,

我是一名嵌入式软件开发者,对最新的zynq平台很感兴趣,由于没有RTL的硬件设计经验,看到vivado HLS和SDsoc平台可以使用c来创建fpga设计,但是看了半天发现,不管是HLS,还是SDSoc并不是我想象的Software defined 与All programable的概念:

1. HLS, SDSoc确实可以用c,c++创建硬件设计,但是看来看去都是算法,或者说,就是把现有的c用fpga来加速而已。
2. HLS 里面的c,c++貌似是可以操作或者引用一些硬件的东西,比如axi总线上的一些现成的ip,ram等。

然后,我的问题是, 我现在要完成的事情是,用fpga来从ADC芯片(是外部的ADC芯片,不是Soc内部的XADC)采集数据,数据采集之后,需要用ARM处理器来处理,然后使用Qt来给用户做个监控的界面。

我的问题就是: 在PL里面的RTL从AD芯片采集数据这个逻辑,用HLS或者SDSoc里面的c、c++(或者甚至是systemC)能完成么?
我要完成的是 ADC - PL --> BRAM/FIFO ---> AXI HP ---> PS 这样的结构, PS里面最好可以直接从特殊的地址空间读取数据,或者如同看到/dev/mem这样的接口来读取。

数据送到PS之后的事情,我就很有经验,都是常规的c,c++, 但是PL里面的逻辑, HLS或者SDsoc里面用c,c++能完成么?

如果说,当前xilinx的设计工具并不能完成,目前如果只是做算法设计,加速,那么以后有这个可能性么? 如果那样,才是真的让c、c++嵌入式工程师进入了fpga领域,要不然得让熟悉RTL的人来做IP,否则还是干瞪眼,实际上大部分现实中小的fpga应用并不涉及算法,所以如果一般的PL尤其是跟硬件直接打交道的逻辑能够用C c++描述,那就不错了。

谢谢!

0 项奖励
1 个已接受解答

已接受的解答
Xilinx Employee
Xilinx Employee
7,814 次查看
注册日期: ‎07-28-2016

回复: 请教 vivado HLS C C++设计

转到解答

目前,对于ADC与FPGA的接口,需要用到ISERDES或者IDDR等FPGA内部专用逻辑,具有较严格的时序性,因此很难用C/C++描述。这也体现了C/C++与VHDL/Verilog等硬件语言的本质区别:并行性和时序性是软件语言所不具备的。而对于算法,无论是简单的还是复杂的,只要可以采用C/C++描述(这种描述需要遵循HLS的规范,并不是所有C/C++语句都可以被综合为RTL代码)就可以被综合为RTL代码。具体效率取决于两个方面:代码风格+综合约束。

1 条回复1
Xilinx Employee
Xilinx Employee
7,815 次查看
注册日期: ‎07-28-2016

回复: 请教 vivado HLS C C++设计

转到解答

目前,对于ADC与FPGA的接口,需要用到ISERDES或者IDDR等FPGA内部专用逻辑,具有较严格的时序性,因此很难用C/C++描述。这也体现了C/C++与VHDL/Verilog等硬件语言的本质区别:并行性和时序性是软件语言所不具备的。而对于算法,无论是简单的还是复杂的,只要可以采用C/C++描述(这种描述需要遵循HLS的规范,并不是所有C/C++语句都可以被综合为RTL代码)就可以被综合为RTL代码。具体效率取决于两个方面:代码风格+综合约束。