news 2026/9/17 7:40:34

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/9/16 5:53:36

(新卷,200分)- 模拟目录管理功能(Java JS Python C)

(新卷,200分)- 模拟目录管理功能(Java & JS & Python & C)题目描述实现一个模拟目录管理功能的软件,输入一个命令序列,输出最后一条命令运行结果。支持命令:创建目录命令:mkdir 目录名称&#…

作者头像 李华
网站建设 2026/9/15 4:29:00

.NET开发必备:Redis、IoC、AutoMapper实战指南

1.Redis、Ioc、AutoMapper等常用技术在现代 .NET(尤其是 ASP.NET Core)开发中,Redis、IoC(Inversion of Control) 和 AutoMapper 是非常常见且重要的技术/工具。下面分别对它们进行简要介绍,并说明其用途和…

作者头像 李华
网站建设 2026/9/12 8:57:13

从一道前端面试题,谈 JS 对象存储特点和运算符执行顺序

本文大纲今天来看一道前端面试的代码输出题。 面试官提供了一段 Javascript 代码,要求给出这段代码运行后的输出结果。 const obj {a: 0, };obj[1] 0; obj[obj.a] obj.a; const values Object.values(obj); obj[values[1]] obj.a; console.log(obj);先分析这道…

作者头像 李华
网站建设 2026/9/16 7:46:13

mysql--多表查询

目录 一、联合查询 案例1,UNION 案例2,UNION? ALL 二、表连接查询 (一)内连接 (二)外连接 1.左外连接 2.右外连接? 3.全外连接 去重关键字 distinct? 三、自连接 案例1: 案例2&…

作者头像 李华