Vivado 高层次综合

Vivado 高层次综合,第1张

感谢你对Vivado HLS也就是XILINX’s 高层次综合解决方案有兴趣,这个解决方案综合cc++++和系统c代码成VerilogVHDL RTL结构
 
我们要说明基于c设计方法在图像处理算法实现的好处。
 
这个算法是工作在一张彩色图像,完成色彩变化后再进行边缘检测。
这个算法是测试不同的色彩变化,然后再进行边缘检测。
这个产生了迭代输出结果。这是个典型的原始应用场景。在这里设计者想去细调这个算法。
Vivado 高层次综合提供内嵌的C仿真能力,帮助设计者做细调。
在这里,我们开始用Vivado 高层次综合来调试图像处理算法。
这个功能调用表示了这个设计被实现成为RTL(寄存器级)。                            
在这个设计规格里面,两个函数调用体现了滤波器的功能。
在第一个滤波器里,一个循环体现了帧内像素颜色转化,现在的配置设置执行了彩色到棕褐色的转换。
使用来自Vivado 高层次综合的调试能力,很容易理解设计描述的执行。
这个定时器显示了完成c仿真的速度。
这个测试向量成功地显示了输出结果和参考图像是相一致的。
 
这个说明了基于c设计好处中的一个,就是算法能全面快速地被验证。


赛灵思vivado设计套件专题:https://www.elecfans.com/topic/tech/vivado/  
现在我们满足了设计规格,我们能继续往前综合成RTL(寄存器级)。
对于我们的演示,我们想去跑75Mhz的时钟频率,这个目标就是处理每秒60帧的数据。目标器件是kintex-7器件。
 
        首次综合通常建立一个基准,这个基准创立了一个全面的报告,设计者参考这个报告,提供约束,得到所需的架构。Vivado 高层次综合显示了极其快速的综合时间,可以在短短几分钟内处理上千上万行c代码。这,反过来,指向了设计探究的机会,真正地通过性能,资源和功耗指标的驱动去细调架构。
作为综合的结果,现在可以得到VerilogVHDL RTL。也就是我们首次基于c语言架构解决方案。
 
这个相应的报告给了我们功耗的评估,还有资源利用率。注意到对于这个算法,存储器的要求高达139%,超过了Kintex-7器件的容量。当然,也有一个性能指标的总结。9ns的时钟周期给个我们110Mhz的时钟频率,所以我们原本75Mhz的目标是没有问题的。但是5亿多个时钟周期的latency(延时)限制了帧速率少于2帧每秒。对于这个c语言,我们要以新的解决方案来应对这个性能的挑战。
 
 
        我们简单的拷贝来自我们第一个方案的所有的约束。对于第二个方案,我们愿意去引入一些并行进程,让这两个滤波器并行运行Vivado 高层次综合对于我们来说很简单。因为它从c代码中提取优化的对象,这些都是基本的函数,循环和数组。顶层函数调用两个滤波函数,默认情况下,Vivado 高层次综合尊重描述在c代码中循序进程性质的。我们能采用一个简单的约束来强制这个架构并行执行。Vivado 高层次综合在函数级提供的其中一个约束是DATAFLOW(数据流水)。这个就是我们想要做的事情。它创造了一种结构,让进程独立的工作,通过渠道互相交换数据。我们也可以控制这些进程之间的沟通渠道。因为滤波器同一顺序执行了所有的像素,所以我们能简化进程间的渠道,把他们转化成小数据流的FIFO。最后,我们通过循环 *** 作加快流水的各个功能
我们仅仅通过GUI加入了一些约束,然而,这个也是可以通过TCL 命令来做的,它使得更加简单进行设计探究。现在,我们准备做综合,注意这个c代码设计是不变的。这个约束不改变功能,但创造了截然不同的架构
 
     这份报告显示了一个比较好的解决方案以及Kintex-7器件可提供的资源范围。这个性能表明了DATAFLOW这个约束能处理一帧数据大约需要90万个周期。一个75Mhz的时钟频率能得到81帧每秒的速度。
 
我们进行下一步 *** 作,用原始的测试向量来验证RTL,也封装这个RTL到 bitstream的实现。
对于这个验证,我们挑选SystemC来共同仿真。因为这个仿真是面对RTL级,测试将需要很长时间。这说明了为什么采用c级设计和细调更加强大提高了生产力。很多没有什么经验的客户也有30-50%的提高。因为在算法的细调过程中加快验证周期
 
Vivado 高层次综合可以自动生成RTL仿真所需的Test bench,复用原有C-levelTB,对RTL进行混合(有时序信息)仿真验证。
 
在这点上,让我们快进到RTL的验证运行结束。
 
我们能看到产生正确结果的RTL结构,图像也被产生在我们的仿真目录里。
 
Vivado 高层次综合 也测量了实际的latency(延时),报告了RTL仿真的成功。
 
注意基于c级仿真和基于RTL仿真有巨大的差距。对于比较大的设计或者测试向量,基于RTL微调花时间太长时间了。
 
我们有了一个满足物理约束,功能正确的结构。
所有剩下的就是把它传递到系统集成环境去了。
 
XILINX 已经应用了IP-XACT标准去封装IP,并从一个工具传递到两外一个工具。
 
Vivado 高层次综合封装RTL架构,集成到Vivado IP 集成器里。
 
总结:
 
Vivado 高层次综合带来了生产力,加快了验证流程。
设计探究和高级的高层次综合技术创造了高质量的RTL结构
RTL验证和封装集成使高层次综合方法容易地应用到你存在的设计流程里。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2481306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存