当前位置: 首页 > news >正文

hls::stream作为高层次设计中最总要的建模

template<typename __STREAM_T__>
class stream{
protected://保护类型
std::string _name;//hls::stream的命名,用于做标记使用
std::deque<__STREAM_T__> _data;//队列

public://对外接口
stream(){//无参构造函数
static unsigned _counter = 1;
std::stringstream ss;

char* _demangle_name = abi::__cxa_demangle(typeid(*this).name(), 0, 0, 0);
if (_demangle_name) {
_name = _demangle_name;
free(_demangle_name);
}
else {
_name = "hls_stream";
}

ss << _counter++;
_name += "." + ss.str();

}

stream(const std::string name){//有参构造函数
_name = name;//用于给hls::stream起名字
}

private:
stream(const stream< __STREAM_T__ >& chn):
_name(chn._name), _data(chn._data) {
}

stream& operator = (const stream< __STREAM_T__ >& chn) {
_name = chn._name;
_data = chn._data;
return *this;
}

public:
/// Overload >> and << operators to implement read() and write()
void operator >> (__STREAM_T__& rdata) {
read(rdata);
}

void operator << (const __STREAM_T__& wdata) {
write(wdata);
}



};

1.这个class类是vivado hls非常重要的建模;
2.很多task的并行处理,都依赖这个class类;
3.这个是C++仿真模型,在C仿真的时候作为模拟FIFO功能的,在综合的时候就是实际的FIFO资源;
4.>>和<<做了流运算符重载
5.hls::stream在c仿真的时候,在TB中是作为无限深度的FIFO来实现的
6.hls::stream在综合的时候,作为FIFO来设计,不可能是无限深度FIFO,所以设计的时候可以依据需要来指定FIFO深度,
如果你不指定,系统默认指定的深度为2

二、ap_ctrl_hs握手

1.上电开始的时候,ap_idle拉高的,表示目前hls ip core是空闲的状态,啥也没干
2.当逻辑侧ap_start拉高,或者SDK通过驱动调用API,拉高ap_start,这个是ap_idle拉低,
表示模块开始工作了;
3.ap_ready的作用是用于告知模块是否准备好接收新的数据了,如果ap_ready拉低,表示这个模块
现在很忙,没时间理会输入的数据,只有ap_ready拉高,新数据才能进入模块被采集到,当新的
数据被采集到,那么这个时候ap_ready拉低,那么这个时候表示模块又在忙
4.ap_done表示模块,或者说函数完成了一次传输设计;当设计完成一次传输事务,也就是执行
了一次C语言函数,块协议会以ap_done拉高来表明函数已经完成。

http://www.jsqmd.com/news/867764/

相关文章:

  • 2026年5月北京办公室装饰装修公司推荐:TOP5排行办公高效评测专业价格注意事项 - 品牌推荐
  • 大中小型企业数据配置年度成本估算分析
  • 如何用3个微小改动让React组件从“能用”升级为“爱用”?——Lovable前端落地实录
  • 在 LangGraph 里做动态路由:意图分类+置信度阈值+回退链路
  • 【央行金融科技白皮书深度解码】:AI Agent在跨境支付、信贷审批、监管报送三大场景的9项强制性技术基线
  • 红河县黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • SQL 语句:从产生、发展到内容全景
  • 2026年5月新消息:洛阳地区工业级EDTA采购,为何洛阳崟生化工有限公司是可靠供应商? - 2026年企业推荐榜
  • 河口瑶族自治县黄金回收白银铂金店铺哪家好 门店推荐 - 莘州文化
  • 别再死磕传统SEO!2026年AI搜索流量爆发,头部GEO公司推荐与转型指南 - 商业科技观察
  • NotebookLM移动端响应延迟高达2.7秒?揭秘GPU加速未启用背后的架构真相,3步强制优化
  • 小龙虾 AI 太香了!10 分钟部署 OpenClaw 数字员工
  • 红塔区黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐 - 莘州文化
  • 澜沧拉祜族自治县黄金回收贵金属回收店推荐 联系方式 - 莘州文化
  • ChatGPT API响应延迟高达8s?揭秘网络层、模型路由与缓存策略的4层加速方案(实测TP99↓62%)
  • 江城哈尼族彝族自治县黄金回收贵金属回收店推荐 联系方式 - 莘州文化
  • SQL 新手入门:最适合上手的工具全解析(免费/付费、小型/中大型项目)
  • ZenTimings完整指南:轻松监控和优化AMD Ryzen内存时序的终极工具
  • 巧家县黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 深度避坑!90%的SEO公司都在“挂羊头卖狗肉”,2026正规GEO服务商排名与防坑指南 - 商业科技观察
  • 在AWS中国区使用NYC Taxi数据集在Apache Flink(KDA)中实现流数据处理管道的实践
  • 终极Windows本地语音转文字神器:TMSpeech完全免费离线解决方案
  • 师宗县黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 【Veo 2K/4K视频生成终极设置指南】:20年AI视频工程师亲测的8项关键参数调优清单
  • 禄丰市黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 江川区黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐 - 莘州文化
  • 施甸县黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 晋宁区黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐 - 莘州文化
  • 安宁市黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 禄劝彝族苗族自治县黄金回收贵金属回收店推荐 联系方式 - 莘州文化