vivado和c语言开发,软件工程师也可以做硬件开发:软件工程师使用Vivado HLS的快速入门...

本文介绍了软件工程师如何利用Vivado HLS将C语言函数转换为硬件模块,实现硬件加速。主要内容包括C函数转换、接口约束、性能优化以及驱动编写,帮助软件工程师涉足硬件开发。
摘要由CSDN通过智能技术生成

HLS可以用于将C语言函数转换成硬件模块。这是一个革命性的工具,从此软件人员也可以创建硬件模块。下面从软件工程师的角度,介绍使用HLS创建硬件模块时的注意事项。为了避免重复,请先阅读UG871 《Vivado Design Suite Tutorial: High-Level Synthesis》。

进行硬件加速,要先准备好用来生成硬件模块的函数,它需要保存在一个单独的文件里。在创建工程时,指定它做为顶层函数。同时也要准备一个实现相同功能的函数,它不会被生成硬件模块,用于验证硬件模块的功能是否正确。最后还要准备一个测试的main()函数,它分别调用前面所述的两个软件函数,并比较它们输出的结果是否一致。在C语言验证和RTL验证时,HLS工具都会调用它。

创建HLS工程的具体步骤,请参考UG871 《Vivado Design Suite Tutorial: High-Level Synthesis》。假设已经创建好HLS工程。下面介绍最基本的约束。

下面是一个典型的C语言函数。

long long cmplx_dot_st_1port

(

long long* p_a,

unsigned int ui_vector_length,

unsigned int ui_test_param[2]

)

上面这个函数中,p_a是一个指针,用于存放有用于存储大量输入/输出数据。CPU执行这个函数时,CPU指令会读写其中的数据。如果C语言函数转换成硬件模块,可以生成AXI Master接口,由硬件模块自动读取数据,相当于集成了一个DMA控制器;也可以生成AXI Stream接口,AXI Stream Slave接口接受其它数据源生成的数,AXI Stream m

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值