HLS第一个入门工程(简单加法器)

news/2026/1/20 15:29:45/文章来源:https://www.cnblogs.com/liufighter/p/19507033

目标:实现一个“输入两个整数、输出其和”的加法器模块,完整走通HLS开发的核心流程(工程创建→代码编写→C仿真→HLS综合→查看RTL结果),理解每一步的目的。

步骤1:创建HLS工程(Vitis HLS 2022.1,Windows为例)

  1. 启动Vitis HLS 2022.1,等待主界面加载完成;
  2. 点击菜单栏 File → New → Project,弹出工程创建向导:
    • 第一步:填写工程名(比如adder_hls),选择工程保存路径(无中文/空格,比如D:\HLS_Projects\adder_hls),点击Next
    • 第二步:填写“Top Function Name”(顶层函数名,HLS只会综合这个函数,填adder),点击Next
    • 第三步:添加源文件(暂时跳过,先创建空工程),点击Next
    • 第四步:添加测试文件(暂时跳过),点击Next
    • 第五步:选择目标FPGA器件(新手选xc7z020clg484-1,Zynq 7020,入门最常用),点击Finish
  3. 此时你会看到工程界面:左侧Project Explorer里有adder_hls工程,默认生成Solution1(综合解决方案)。

步骤 2:新建头文件adder.h

右键工程里的Source文件夹 → New → File;
文件名填adder.h,点击Finish;
输入以下代码:

// adder.h:头文件,存放数据类型和函数声明
#ifndef ADDER_H  // 防止头文件被重复包含(关键!)
#define ADDER_H// HLS基础头文件
#include "hls_stream.h"
#include "ap_int.h"// 定义8位有符号整数类型(对应FPGA的8位寄存器)
typedef ap_int<8> data_t;/*** @brief HLS顶层函数:8位整数加法器(仅声明,不实现)* @param a 输入1* @param b 输入2* @param c 输出*/
void adder(data_t a, data_t b, data_t &c);#endif  // ADDER_H

步骤3:编写顶层函数(加法器的C++代码)

顶层函数是HLS综合的“入口”,必须是void类型,参数用指针/引用(硬件端口),不能用return(硬件没有“返回值”,只有输入输出端口)。

  1. 右键工程里的Source文件夹 → New → File
  2. 文件名填adder.cpp,点击Finish
  3. 在代码编辑区输入以下代码(带详细注释):
// adder.cpp:加法器顶层函数
// 头文件:HLS需要的基础头文件
#include "hls_stream.h"
#include "ap_int.h"// 定义数据类型:ap_int<8>表示8位宽的整数(对应FPGA的8位寄存器)
typedef ap_int<8> data_t;/*** @brief HLS顶层函数:8位整数加法器* @param a 输入1(硬件输入端口)* @param b 输入2(硬件输入端口)* @param c 输出(硬件输出端口)*/
void adder(data_t a, data_t b, data_t &c) {// 加法逻辑:和RTL不同,只需要写功能,不用关心硬件连线c = a + b;
}
  1. 保存文件(Ctrl+S),检查无语法错误(Editor会实时标红错误)。

步骤4:编写Testbench(测试文件,验证算法逻辑)

Testbench是C++测试代码,用来模拟FPGA的输入输出,验证adder函数的逻辑是否正确(相当于软件里的“单元测试”)。

  1. 右键工程里的Test Bench文件夹 → New → File
  2. 文件名填adder_tb.cpp,点击Finish
  3. 输入以下测试代码:
// adder_tb.cpp:加法器测试文件
#include "adder.h"  // 包含顶层函数
#include <iostream>   // 用于打印测试结果using namespace std;int main() {// 定义测试变量data_t a, b, c;// 测试用例:覆盖正数、负数、边界值int test_cases[5][3] = {{1, 2, 3},    // 1+2=3{10, -5, 5},  // 10+(-5)=5{127, 1, -128},// 8位有符号数边界:127+1=-128(溢出,符合硬件特性){0, 0, 0},    // 0+0=0{-10, -20, -30}// -10+(-20)=-30};// 遍历测试用例for(int i=0; i<5; i++) {a = test_cases[i][0];b = test_cases[i][1];// 调用加法器函数adder(a, b, c);// 打印结果,验证是否正确cout << "Test Case " << i+1 << ": " << (int)a << " + " << (int)b << " = " << (int)c;if(c == test_cases[i][2]) {cout << " [PASS]" << endl;} else {cout << " [FAIL] Expected: " << test_cases[i][2] << endl;}}return 0;
}

步骤5:运行C仿真(验证算法逻辑)

C仿真的目的是:先确认C++代码的算法逻辑100%正确,再进行硬件综合(避免硬件综合后才发现算法错)。

  1. 点击菜单栏 Project → Run C Simulation
  2. 弹出配置窗口:
    • Test Benchadder_tb.cpp
    • Simulation ModeFunctional(功能仿真,只验证逻辑,不关心时序);
    • 点击Run
  3. 等待仿真完成(Console窗口会输出日志),最终看到测试结果:
Test Case 1: 1 + 2 = 3 [PASS]
Test Case 2: 10 + -5 = 5 [PASS]
Test Case 3: 127 + 1 = -128 [PASS]
Test Case 4: 0 + 0 = 0 [PASS]
Test Case 5: -10 + -20 = -30 [PASS]

所有用例PASS,说明算法逻辑正确。

步骤5:运行HLS综合(生成RTL代码)

这是HLS的核心步骤:把C++的加法器逻辑,转换成Verilog/VHDL(RTL)代码。

  1. 点击菜单栏 Project → Run C Synthesis
  2. 弹出配置窗口:保持默认(Top Function选adder),点击Run
  3. 等待综合完成(约1-2分钟,Console会输出进度),完成后会显示“C Synthesis completed successfully”;
  4. 此时HLS会自动生成:
    • Verilog/VHDL代码(在Solution1/impl/verilog文件夹里,能看到adder.v);
    • 综合报告(Solution1/syn/report/adder_csynth.rpt):包含资源占用、时序性能等。

步骤6:查看生成的RTL代码和综合报告(关键)

  1. 查看RTL代码:双击Solution1/impl/verilog/adder.v,能看到HLS生成的Verilog代码,核心部分如下(不用全懂,重点看端口和加法逻辑):
module adder(input  [7:0] a,  // 8位输入a(对应C++的data_t a)input  [7:0] b,  // 8位输入boutput [7:0] c   // 8位输出c
);assign c = a + b;  // 加法逻辑,和C++代码一一对应
endmodule
  1. 查看综合报告:双击adder_csynth.rpt,重点看:
    • Resource Estimates(资源占用):加法器只用到少量LUT,几乎无FF/DSP;
    • Latency Estimates(延迟):加法器的硬件延迟是1个时钟周期(符合预期)。

总结

  1. HLS开发的核心流程:创建工程→写顶层函数(算法逻辑)→写Testbench→C仿真(验逻辑)→HLS综合(生成RTL)→查综合报告;
  2. 顶层函数是HLS综合的入口,参数要用指针/引用(对应硬件端口),数据类型推荐用ap_int<N>(自定义位宽,适配FPGA);
  3. C仿真先验证算法正确性,再做硬件综合,是HLS开发的最佳实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1189591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

合规审计日志场景:企业网盘测评日志功能对比 - 速递信息

本次测评将涵盖以下9款产品:够快云库、Microsoft OneDrive for Business、Dropbox Business、联想企业网盘(联想Filez)、360亿方云、燕麦云、坚果云、Box、Google Drive(Google Workspace)。在企业数字化转型日益…

探寻耐酸碱流量计优质厂家,2026年哪些品牌值得信赖,液体涡轮流量计/超声波液位计,耐酸碱流量计供应厂家哪里有卖 - 品牌推荐师

在工业生产流程中,耐酸碱流量计作为精准测量腐蚀性介质流量的核心设备,其性能直接关乎工艺稳定性与生产安全。随着化工、制药、环保等行业对耐腐蚀、抗干扰、高精度测量需求的持续增长,如何从众多品牌中筛选出技术可…

格力产品质量怎么样?专业测评揭示三大核心产品真实性能表现 - 速递信息

从60℃火焰山到-30℃东极,格力为何"自讨苦吃"?格力作为成立于1991年的多元化家电制造企业,拥有超过135290项专利和50项"国际领先"技术,产品远销190多个国家和地区,服务超6亿用户。通过对格力…

弗劳恩霍夫IAPT方案

&#x1f393;作者简介&#xff1a;科技自媒体优质创作者 &#x1f310;个人主页&#xff1a;莱歌数字-CSDN博客 &#x1f48c;公众号&#xff1a;莱歌数字&#xff08;B站同名&#xff09; &#x1f4f1;个人微信&#xff1a;yanshanYH 211、985硕士&#xff0c;从业16年 从…

2026同安靠谱装修公司推荐|避坑三大痛点,预算/设计/整装全匹配 - 品牌测评鉴赏家

2026同安靠谱装修公司推荐|避坑三大痛点,预算/设计/整装全匹配一、引言:同安装修市场现状与业主核心痛点 在厦门 “跨岛发展” 战略的持续推进下,同安区一跃成为城市建设的热土。中国家装行业发展白皮书数据显示,…

2026年1月钢结构厂房机构行业推荐 - 2026年企业推荐榜

转载自:https://www.remenpp.com/rankinglis/284081.html 文章摘要 钢结构厂房行业在2026年1月至2025年12月期间持续发展,模块化建筑和绿色技术成为趋势。本文推荐五家优秀机构,榜单基于综合评估,排名不分先后,旨…

学霸同款2026继续教育AI论文平台TOP10:选对工具轻松写毕业论文

学霸同款2026继续教育AI论文平台TOP10&#xff1a;选对工具轻松写毕业论文 2026年继续教育AI论文平台测评&#xff1a;选对工具&#xff0c;让毕业论文更高效 随着继续教育领域的不断发展&#xff0c;越来越多的学员需要撰写高质量的毕业论文。然而&#xff0c;面对繁重的工作…

基于springboot系统,如何跟踪会话过期,浏览器会话标识是否收到正常响应,存储,并在后续请求保持携带

今天我们分享一个项目开发中的出现操作某个业务时候,出现闪退的经典问题,针对老旧的Spring MVC系统,要系统性地跟踪会话(Session)生命周期和Cookie的携带情况,我们需要一套清晰的、从浏览器到服务器的排查方案。…

2026振荡器厂家实测:权威品牌/制造企业/高端型号全梳理 - 品牌推荐大师1

在2026年实验室设备升级浪潮中,振荡器作为基础但关键的通用仪器,其性能直接关系到实验数据的重复性与可靠性。为帮助科研用户精准选型,我们对当前市场主流及小众振荡器品牌进行了多维度实测评估,涵盖温度控制精度、…

你真的理解 ASP.NET Core 的中间件吗?搞懂它只需要这一篇

在 ASP.NET Core 的设计中&#xff0c;高性能、高灵活性和模块化并不是偶然结果&#xff0c;而是源于一套非常清晰的架构理念。其中&#xff0c;中间件&#xff08;Middleware&#xff09;是整个 Web 框架的核心基础设施之一。每一个 HTTP 请求&#xff0c;从进入应用到返回响应…

NMN怎么买?NMN怎么吃效果最好?2026年NMN抗衰产品十大品牌排名 - 速递信息

随着细胞抗衰理念深入人心,NMN已成为不少人日常抗衰的核心选择,但“怎么买不踩坑”“怎么吃效果最大化”却成了普遍难题。市面上NMN品牌繁杂,抗衰效果参差不齐,有的仅能短暂缓解疲劳,有的却能从细胞层面延缓老化。…

东营社保代缴哪家强?权威十大机构实测:合规、价格、服务三重维度深度拆解 - 速递信息

在营商环境持续优化的东营,从蓬勃发展的中小企业到布局全国的集团企业,规范处理员工社保公积金已成为企业合规运营的基石。然而,繁杂的地方政策、高频的基数调整、严格的稽核审查,让众多企业HR疲于应对。选择一家专…

AI驱动视角下:白银十年涨幅491%的量化归因——基于多模态数据融合与强化学习的市场演变分析

摘要&#xff1a;本文通过构建LSTM-GRU混合时间序列预测模型&#xff0c;结合PCA主成分分析与LDA主题模型对全球白银市场十年数据&#xff08;2016-2026&#xff09;进行深度挖掘&#xff0c;分析白银价格从15美元/盎司飙升至94美元/盎司的驱动机制&#xff0c;揭示光伏产业需求…

厦门别墅装修公司哪家强?2026精选榜单+避坑指南奉上 - 品牌测评鉴赏家

厦门别墅装修公司哪家强?2026精选榜单+避坑指南奉上一、开篇:厦门别墅装修别踩坑!选对专业公司是核心 1.1 厦门别墅装修市场现状:痛点与需求并存 在厦门这座充满浪漫与艺术气息的海滨城市,别墅作为高品质生活的象…

2026 合金精致钢厂家权威推荐榜单:直角精致钢/90度尖角精致钢/精密焊接精致钢/90度精致钢/冷弯精致钢源头厂家精选。

在建筑幕墙、**装饰及工业结构领域,精致钢型材因其高强度、耐腐蚀及美观性成为关键材料。随着市场对定制化、高性能产品的需求增长,天津舜辰精致钢智能制造有限公司凭借其技术积累与产品矩阵,成为行业备受关注的供应…

自学成为网络安全工程师:2026最新知识体系与实战学习路径解析

【2025网络安全趋势】从小白到专家&#xff1a;网安工程师入行指南&#xff08;建议收藏&#xff09; 文章详述2025年网络安全工程师入行路径&#xff0c;涵盖三大核心职责方向、需求薪资前景及权威认证报考指南。数据显示网安岗位需求年增37%&#xff0c;薪资上限高&#xff…

2026 功效牙膏厂家权威推荐榜单:中草药牙膏/功效牙膏/护龈牙膏/无刺激牙膏/牙龈出血牙膏源头厂家精选。

我国口腔健康问题中,受口腔溃疡与牙龈敏感影响的人群已达3亿,其中因牙龈肿痛、出血等问题就医的年就诊量超过1.2亿次。这些数据背后,是日常护理需求与专业解决方案之间的巨大缺口。连芩珍珠牙膏研发团队基于临床经验…

2026京沪穗深雅思机构榜单出炉:多次元教育以98.6分领跑行业 - 速递信息

今年初,雅思主办方之一英国文化教育协会传出财务危机消息,引发广泛关注。然而与主办方的窘境形成鲜明对比的是,中国雅思培训市场持续升温。2025年数据显示,中国内地雅思考生数量较五年前增长约40%,最近报告年度报…

厦门装修指南:十大宝藏公司揭秘 - 品牌测评鉴赏家

厦门装修指南:十大宝藏公司揭秘一、厦门装修指南 在厦门这座充满浪漫与文艺气息的海滨城市,拥有一套心仪的房子是许多人的梦想。无论是矗立在海边,能将无垠海景尽收眼底的海景房,清晨在海浪的轻抚中苏醒,夜晚伴着…