news 2026/6/10 13:11:26

vivado hls设计总结(十四)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vivado hls设计总结(十四)

一、高层次综合编码样式
1.c实现的递归是不支持可综合的
2.vivado hls中,使用c++的函数模板和类模板可以实现递归函数

二、函数
1.顶层函数综合后变为RTL设计的顶层
2.子函数综合变为RTL设计的块
3.顶层函数不能采用静态函数

三、函数内联
1.子函数可以通过内联来将其逻辑和周围的函数的逻辑合并

四、RTL黑盒设计
1.rtl黑盒设计说明
rtl黑盒设计,就是hls c/c++代码和rtl verilog代码混合编程设计,
但是有有些区别,将预先设计好的verilog模块集成到HLS设计中。

2.RTL设计集成到HLS需要满足的条件
需要黑盒json描述文件;
需要RTL IP文件,也就是rtl的verilog的module代码文件;
需要RTL的c语言实现,也就是一个c语言设计接口。

3.如何将RTL的IP集成到HLS设计中
首先,需要创建RTL的C语言实现函数
其次,在HLS中调用该C语言实现函数
再次,创建必要的JSON文件
然后,使用add_files将JSON文件添加到script.tcl文件中
然后,进行C仿真,综合和协同仿真

4.RTL黑盒设计需要注意的问题
在hls c++设计中才能支持RTL黑盒,c设计是不支持的;
注意rtl黑盒设计只能作为中间模块,不能连接到顶层IO信号;
RTL不支持接口类型为struct结构体或者class类

5.rtl黑盒设计支持的接口
hls::stream接口是支持的;
数组接口是支持的;
标量和指针接口是支持的;
RTL IP 必须使用 ap_ctrl_chain 协议。

6.综合的端口
指定对应 C 语言实参的 RTL 端口协议信号。可使用 5 种类型
的 RTL 端口协议:
• wire:C 语言实参使用标量或含输入方向的指针时,可
映射到 wire。
• ap_vld:C 语言实参使用含输出方向的指针时,可映射到
ap_vld。
• ap_ovld:C 语言实参使用含输入输出方向的指针时,可
映射到 ap_ovld。
• FIFO:C 语言实参使用 hls::stream 数据类型时,可映射
到 FIFO。
• RAM:C 语言实参使用数组类型时,可映射到 RAM。数
组类型支持输入输出方向。
以上指定的 RTL 端口协议具有关联的控制信号,这些关联信
号需在 JSON 文件内。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:15:24

15 个SpringBoot 常用启动扩展点,花活都在这上玩!

Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依…

作者头像 李华
网站建设 2026/6/10 11:24:48

瞧瞧别人家的Controller,那叫一个优雅

在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台Controller接口,或者提供Controller接口给第三方平台调用。 那么问题来了,如果设计一个优雅的Controller接口,能够满足:安全性、可重复…

作者头像 李华
网站建设 2026/6/10 15:36:16

计算机网络必看:信道的极限容量,408真题常考!

计算机网络必看:信道的极限容量,408真题常考!在学习计算机网络时,你是否曾困惑:“为什么网速不能无限快?” “一个信道到底能传多快?”这些问题的答案,就藏在信道的极限容量这个核心…

作者头像 李华
网站建设 2026/6/10 11:46:17

MySQL----case的用法

在 MySQL 中,CASE 表达式是一个用于条件判断的功能,可以根据不同的条件返回不同的结果。CASE 表达式通常用于 SELECT 查询语句中,可以在 SQL 中灵活地进行条件判断和数据转换。CASE 有两种基本的语法形式: 简单 CASE 表达式&#…

作者头像 李华
网站建设 2026/6/10 11:45:13

MySQL 数据类型详解:TINYINT、INT 和 BIGINT

在设计数据库时,选择合适的数据类型对于系统性能和存储效率至关重要。MySQL 提供了多种整数类型来满足不同的存储需求,其中包括 TINYINT、INT 和 BIGINT。本文将详细介绍这三种整数类型的区别、应用场景和使用建议。 1. TINYINT TINYINT 是 MySQL 中存储…

作者头像 李华
网站建设 2026/6/10 10:59:26

基于python深度学习的面部表情识别系统

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…

作者头像 李华