Vivado HLS与System Generator:联系与区别
在很多年以前的ISE套件里面,有个功能强大的AccelDSP,它可以可自动地进行浮点到定点转换,并把算法生成可综合的HDL,还可以创建用于验证的测试平台,但是在4年前左右的时候销声匿迹了,当时的说法是市场策略的问题。几年之后Vivado HLS横空出世,具备了更加强大的分析、综合、验证等功能,使得我们可以快速把现有的C/C++代码在满足HLS设计规范的情况下直接生成可综合的结果。在这前后的时间里面,我们还有一个工具可以直接把现有的算法生成可综合的结果,而不需要或者只需要很少的手工HDL编写,那就是System
Generator。那HLS和System Generator既然都可以生成现成的可综合HDL代码,那么它们直接有什么区别和联系呢?我们可以在此做一些简单的探讨,不足之处请大家指出。(1)相比于手工编码,Vivado HLS与System Generator都是在一种更高层次的级别上进行设计。 Vivado HLS是把现有的基于C/C++/SystemC的算法直接在基于Eclipse的编译环境中进行开发、验证并生成可综合的代码,只要对FPGA的基本结构有了一定的了解,我们很容易以开发软件类似的方式完成算法的综合,开发效率是不言而喻的。
System Generator同样可以把现有的算法在Simulink环境中进行开发、仿真验证、FPGA在回路验证等等,而且它不仅可以生成可综合的HDL、EDK中使用的IP,甚至可以直接生成bit流文件。当然,因为在使用System Generator设计时要直接使用FPGA中的基本模块,开发人员要对FPGA的架构和开发方式更加熟悉,比如什么地方要插入寄存器保证时序,什么地方使用某些模块不会产生额外的硬件资源消耗等等。 做为全新的设计工具,目前看起来Vivado HLS的设计完成的速度要更快一些,当然Vivado套件中的System
Generator和ISE套件中的System Generator相比,生成速度已经提高了很多了。(2)二者都是基于模型的设计方法中的重要手段 基于模式的设计(MBD)在复杂的嵌入式系统中的应用越来越广泛了,因为结合了Matlab/Simulink设计方法,验证与测试工作可以多次、反复地高效运行,并且使用了自动代码生成技术,开发、验证与确认等工作的效率大大提高。 假设我们已经有了一个基于C/C++的,或者在Simulink环境中已经充分验证了的代码,那我们至少有四种途径直接生成可综合的HDL代码,包括:
把Simulink模型用System Generator中的模块重新搭建(可以自己编写个m文件,标明替换规则,然后自动替换,但是不是万能的,什么时候Xilinx出一个就好了),然后进行直接仿真验证、基于JTAG/以太网的FPGA在回路测试、ModelSim仿真等等,最后可以生成HDL文件、IP、综合网表、比特流等。 用Matlab的HDL Coder/HDL Verifier进行HDL文件的生成、测试等。它的测试、验证思想等与System Generator是一致的,但是因为它并不是专门针对Xilinx
FPGA的,所以生成的都是标准的HDL,对IP、硬件资源的使用以及不如System Generator灵活。 使用Matlab/Simulink/Embeded Coder直接把现有的模型生成C代码,这个代码生成速度和测试、验证是很快的,是MBD开发的一种典型方式。使用生成的C代码,或者使用现有的C代码,然后就可以使用Vivado HLS进行高层次的综合工作了。(3)二者可以互相转换、调用 说了这么多,那Vivado HLS和System Generator如何进行一些互动呢?在Vivado开发环境下,得益于Vivado
IPI以IP为中心的这样的设计方法,它们直接的互动变得非常容易。例如: 把Vivado HLS综合的结果打包为一个IP,或者生成HDL代码,从而供System Generator直接调用;如果懒得验证,可以直接使用Vivado HLS模块; 在一个Vivado工程中,一部分功能可以由Vivado HLS综合而来,一部分现有的基于System Generator的算法直接被调用,它们便可以共同工作了。
转载地址:http://xilinx.eetrend.com/blog/6388
Vivado HLS与System Generator:联系与区别的更多相关文章
- 利用system generator 生成vivado ip—以低通滤波器举例
前段时间自学了matlab和vivado联合推出的system generator工具,用来做数字信号处理,十分好用且使开发更便捷,下面举个例子来供大家一起学习下. 首先打开matlab命令行,输入s ...
- System Generator 生成IP核在Vivado中进行调用
System Generator 生成IP核在Vivado中进行调用 1.首先在Simulink中搭建硬件模型 2.查看仿真结果 3.资源分析与时序分析 4.启动vivado,关联生成的IP核 5.调 ...
- ZED-Board从入门到精通系列(八)——Vivado HLS实现FIR滤波器
http://www.tuicool.com/articles/eQ7nEn 最终到了HLS部分.HLS是High Level Synthesis的缩写,是一种能够将高级程序设计语言C,C++.Sys ...
- 基于Vivado HLS在zedboard中的Sobel滤波算法实现
基于Vivado HLS在zedboard中的Sobel滤波算法实现 平台:zedboard + Webcam 工具:g++4.6 + VIVADO HLS + XILINX EDK + ...
- System Generator入门笔记
System Generator入门笔记 [CPLD/FPGA] 发布时间:2010-04-08 23:02:09 System Generator是Xilinx公司进行数字信号处理开发的一种设计 ...
- 利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
一.前言 利用FPGA设计算法一直以来都是热点,同样也是难点.将复杂的数学公式 模型通过硬件系统来搭建,在低延时 高并行性等优势背后极大提高了设计难度和开发周期.Xilinx公司的sysGen(sys ...
- system generator学习笔记【01】
作者:桂. 时间:2018-05-18 18:26:50 链接:http://www.cnblogs.com/xingshansi/p/9045914.html 前言 学习使用system gene ...
- System.out.println与System.err.println的区别(输出顺序!!!)
System.out.println与System.err.println的区别(输出顺序!!!) 分类:java (208) (0) System.out.println与System.err.p ...
- System.Windows.Forms.Timer与System.Timers.Timer的区别(zz)
.NET Framework里面提供了三种Timer: System.Windows.Forms.Timer System.Timers.Timer System.Threading.Timer VS ...
随机推荐
- 基于HTML5 SVG炫酷文字爆炸特效
这是一款使用html5 svg.css3和js制作的炫酷文字爆炸特效.该文字特效用SVG path属性将文字路径切割为很多小块,然后使用css3和js在鼠标滑过文字时制作文字爆炸分裂的炫酷效果. 在线 ...
- 项目源码--Android聚合视频类播放器
下载源码 技术要点: 1.高效支持主流的视音频格式 2.本地视频的播放与管理 3.聚合电视在线直播 4.聚合优酷.搜狐.乐视.爱奇艺等多种在线视频 5.优质播放,包含播放.暂停,声音.亮度调整等功能 ...
- Busybox支持中文的解决办法
转载:http://blog.csdn.net/wavemcu/article/details/7202908 ******************************************** ...
- 制作嵌入式linux文件系统(ramdisk,cramfs,squashfs)
转:http://blog.csdn.net/zyb19831212/article/details/1887930 一.什么是文件系统 (Filesystem): A directory struc ...
- BootStrap2学习日记21---消息提示
<p><a href="#" title="中国(China),位于东亚,是一个以华夏文明为主体.中华文化为基础,以汉族为主要民族的统一多民族国家,通用 ...
- [Java] 内部类总结
内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权 ...
- Objective-C 高级编程:iOS与OS X多线程和内存管理
<Objective-C 高级编程:iOS与OS X多线程和内存管理> 基本信息 原书名: Pro Multithreading and Memory Management for iOS ...
- POJ 2236 Wireless Network (并查集)
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 18066 Accepted: 761 ...
- Oracle存储过程的调用(返回参数)
CREATE OR REPLACE PROCEDURE test_in_out_exception (v_empno VARCHAR2,v_guess_sal NUMBER,v_true_sal OU ...
- Sqlite3笔记
.tables 查看表.databases 创建数据库alter table 表名 RENAME TO 新表名ALTER TABLE 表名 add column 列名 datatype [DEFAUL ...