HLS和 VITIS在使用上的区别?

HLS :
用C/CPP 语言写好一个函数,或者一个写多个函数,封装进一个函数里面,将这个函数进行 c 仿真,c 综合, 联合仿真,进行最佳的优化(主要是延时),最终导出verilog /vhdl 的 IP 核,是IP 核,IP 核,IP 核,重要的事情说3遍,然后将这个IP 核 导入vivado , 像普通IP 一样使用。本质上是把C 语言变成verilog /vhdl ,最终在vivado 使用。要固化的话,是在vivado 固化。

vitis:
用verilog /vhdl 写好某一个模块,封装进 MicroBlaze 的Processing System,添上必要的 IP ,
生成 BIT 流文件,导出包含硬件信息的 xsa 文件。
启动 Vitis,把这个xsa 文件导入到vitis 的工程,最终会变成应用工程里面的一个函数,没错,变成一个函数。要固化的话,是在vitis 固化。vitis 编写嵌入式代码和用嵌入式软件(比如:keil /css)编写嵌入式代码的区别:vitis 编写嵌入式代码的时候,vivado 已经把管脚约束写好了,嵌入式软件(比如:keil /css)编写嵌入式代码,需要在C/CPP 语言里面进行管脚约束。

### Vitis HLS 与 Vivado HLS 的主要差异 #### 功能定位 Vivado HLS Vitis HLS 均属于赛灵思(现为AMD的一部分)提供的高层次综合工具,旨在通过高级编程语言简化硬件设计流程。然而,两者的功能定位存在显著差异。 Vivado HLS 主要专注于 FPGA 硬件加速模块的开发优化[^1]。其核心能力在于将 C/C++/SystemC 编写的算法转换为 RTL 描述,并支持将其封装为 IP 核以便于集成到更大规模的设计中。这种特性使得 Vivado HLS 成为了传统 FPGA 开发者的重要工具之一。 相比之下,Vitis HLS 则定位于更广泛的异构计算环境下的应用开发[^3]。除了具备类似于 Vivado HLS 的高层次综合功能之外,Vitis HLS 更加注重软硬协同设计以及跨平台的支持。它不仅允许开发者利用 C/C++ 创建可综合至 FPGA 的硬件组件,还提供了针对 ARM 处理器其他处理器架构上的软件部分进行联合编译的能力。 #### 用户界面与工作流 从用户体验角度来看,两者也有明显区别: - **Vivado HLS**: 提供了一套完整的图形化用户界面(GUI),便于初学者快速上手并完成基本操作如项目设置、源文件管理等任务;同时也保留了命令行模式给那些偏好脚本自动化作业的人群使用[^1]。 - **Vitis HLS**: 整合进了统一的 Vitis 平台之中,这意味着它可以无缝衔接其他组成部分(例如 AI Engine 编辑器)[^3] ,从而形成端到端解决方案。对于希望构建复杂系统级应用程序而非单一IP核的工程师而言更为有利。 #### 性能调优选项 关于性能方面, - 在 Vivado HLS 中可以通过手动添加 pragma 指令来指导工具如何更好地实现特定需求 (比如流水线级别设定)[^2] 。虽然这种方法给予使用者较大灵活性去探索最佳设计方案,但也增加了学习曲线长度. - 而在 Vitis HLS 方面,则继续沿用了类似的 pragmas 结构来进行控制的同时,进一步增强了自动化的程度,减少了人为干预的需求量。这有助于提高生产力,尤其是在面对大规模或者极其复杂的工程项目时显得尤为重要[^3]. ```python // Example of using pipeline directive in both tools #pragma HLS PIPELINE II=1 void example_function(int a[], int b[]) { for (int i = 0; i < N; ++i) { b[i] = some_computation(a[i]); } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值