自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 在Zynq AP SoC设计中使用HLS IP(二)

概述对于硬件加速模块来说,这些硬件加速模块会消耗源于CPU存储器的数据,并且以streaming方式产生数据。本文使用Vivado HLS和xfft IP模块(在IP Integrator使用HLS IP那节用过)。这些模块是连接到HP0的AXI4从端口,使得zynq7处理系统的数据通过AXI DMA IP核。硬件加速模块是免费的运行,并不需要驱动,只要数据被CPU推送(通常简称为处理系统或PS)。

2016-12-12 16:41:58 1444

原创 在Zynq AP SoC设计中使用HLS IP(一)

概述高层次综合设计最常见的的使用就是为CPU创建一个加速器,将在CPU中执行的代码移动到FPGA可编程逻辑去提高性能。本文展示了如何在Zynq AP SoC设计中使用HLS IP。在Zynq器件应用Vivado HLS IP这里集成了HLS IP和由HLS创建的软件驱动,目的是控制在Zynq器件上实现的IP设计。Step 1: 创建Vivado HLS IP Block 脚本完成时,会生成vhls

2016-12-12 01:36:47 1720

原创 复合数据类型在Vivado Hls中的应用

在C++中常用的复合数据类型,一种是结构体,另一种就是枚举类型。struct对于struct来说,如果出现在顶层函数,并作为顶层函数参数的时候,struct里的scalar变量就会被映射scalar类型的端口,数组就会被映射为相应的memory端口。在实际使用中,建议预先把结构体在头文件里声明。对于结构体中的元素,Vivado hls里提供相应的data pack优化方式,这种优化方式分为两种,即f

2016-12-03 22:03:33 1028

原创 如何在IP Integrator中使用HLS IP

概叙通常来说,我们不仅要用高级综合package RTL,还可以利用内部IP Integrator。本文是一个复杂的FFT数据块的设计,介绍如何设计HLS IP,并且在IP Integrator中使用它来作一个设计——这里生成两个HLS blocks的IP,并且在一个FFT(Xilinx IP)的设计中使用他们,最终使用RTL testbench来验证设计。集成带有Xilinx IP Block的

2016-12-03 20:34:38 1491

原创 Vivado Hls 设计优化

在使用高层次综合时,创造高质量的RTL设计时,一个重要部分就是对C代码进行优化。Vivado Hls总是试图最小化loop和function的latency,为了实现这一点,它试图在loop和function上并行执行尽可能多的操作。在function级别上,高级综合总是试图并行执行function。 除了这些自动优化,directive是用来: (1) 并行执行多个tasks,例如,同一个函数

2016-11-29 07:40:22 6242

原创 Vivado Hls 设计分析

概叙设计方法:综合设计回顾最初的结果应用优化的 directives去提高效率你可以重复上述步骤,直到达到要求。然后,你可以重新审查设计去提高面积。此过程的关键部分是分析结果,下面通过一个project来介绍如何使用reports和 GUI perspective 去分析设计,并且决定用哪种solution去应用相应的优化。* directive简介*创建solution时,directiv

2016-11-22 08:05:12 3362

原创 数据类型的转化

如何对任意精度类型的变量初始化对于ap_[u]int类型在C/C++里,是通过变量类型+变量名+数值,来对一个变量初始化,同样,对于任意精度的数据类型,我们也可以采用这种方式来进行变量初始化。在Vivado Hls里是支持copy initialization(Y)和direct initialization(Y)这两种方式来进行初始化,但不支持uniform initialization,同时,对

2016-11-14 13:23:21 2352

原创 Vivado HLs中任意精度数据类型的处理方法

我们在设计硬件时,它往往是要求更精确的位宽。例如,一个filter的输入是12位和一个累加器的结果只需要一个最大范围为27位。然而对于硬件设计来说,使用标准的C数据类型会造成硬件成本的浪费。这就会造成我们要使用更多的LUT和寄存器,延迟甚至可能超过时钟周期和需要更多的周期来计算结果。这往往不是我们需要的结果。因此下面我将介绍如何利用Vivado HLS处理许多位准确或任意精度数据类型,以及允许使用任

2016-11-13 22:03:38 7325

原创 Vivado Hls 设计流程总结

Vivado Hls 设计流程总结 对于Vivado Hls来说,输入包括Tesbench,C/C++源代码和Directives,相应的输出为IP Catalog,DSP和SysGen,特别的,一个工程只能有一个顶层函数用于综和,这个顶层函数下面的子函数也是可以被综合的,会生成相应的VHDL和Verilog代码,所以,C综合后的RTL代码结构通常是跟原始C描述的结构是一致的,除非是子函数功能

2016-11-07 22:15:16 8304

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除