news 2026/6/9 23:53:14

forward path路径数据流架构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
forward path路径数据流架构

一、mealy machine架构

void foo(int I1,int I2,int*O){
static int L;//latch or flip-flop

*O = I1*L; //read current-L
L = I2 + L;//assign next-L

}
注意:描述上述电路的代码,必须先描述downstream,然后再描述upperstream.
先写output,再写input部分,这个由于C代码是blocking阻塞模式,所以必须
这么写。所有的forward path的架构都可以这么玩。

二、多次调用mealy machine架构

上述架构调用了两次foo函数

注意,不能直接按照上述代码来写,因为foo()这个函数代码如下:

void foo(int I1,int I2,int*O){
static int L;//latch or flip-flop

*O = I1*L; //read current-L
L = I2 + L;//assign next-L

}

可以看出,调用了两次,但是这函数有static修饰的L,在两次函数调用的时候共用了static变量L,这个是C/C++语言的特性,所以上述fxn_reuse_try并不能实现两次mealy_machine的调用!

三、使用函数模板来实现多次mealy_machine设计

上述代码中,使用函数模板实现了foo函数,上述的模板参数第一次写1,第二次写2,这样就实现了这两个函数的unify唯一性了,就可以实现上述功能。

另外,补充下:

其实还有一种办法,就是将foo函数起名搞成两个不同的名字,也可以实现这个功能,比如,第一个函数叫做foo1,第二个函数名字叫做foo2,这样和模板函数实现的效果其实是一样的,同样可以实现功能。

四、总结

c语言的函数调用并不能等同于module的例化,这个是不能画等号的。除非使用template模板化,才能唯一的函数,这样才行。

同一个函数的两次执行,并不是两个函数的直接copy。

在hls中处理多次调用,
如果是纯组合逻辑,没有static和global变量,那么多次调用可以认为是多次复制例化
如果多次调用是顺序依赖的,一个实例在不同clock使用,那么实例就被复用

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

AI元人文:内在的意义行为原生——意识作为第一舞台的元叙事

AI元人文:内在的意义行为原生——意识作为第一舞台的元叙事导言:意义的回归运动当AI元人文构想以其宏大的“星图-舞台-悟空”三元架构描绘文明尺度的意义共治时,一个根本性的回归运动必须被同时启动:向内审视意义发生的第一现场—…

作者头像 李华
网站建设 2026/6/9 22:34:37

windows系统中,GDT中的全局描述符和LDT中的局部描述符关系概述

在Windows系统中,全局描述符表(GDT)和局部描述符表(LDT)都是用于内存段管理的机制,但它们在系统中的作用和使用方式有所不同。 全局描述符表(GDT) 系统全局唯一:每个处理…

作者头像 李华
网站建设 2026/6/9 22:52:30

47. Connecting register env

UVM 寄存器环境连接:从“独立团队”到“协同作战” 🎯 课程目标:15分钟掌握UVM环境集成的关键技巧 已经学会了搭建独立的寄存器环境,现在是时候学习如何让这个环境与其他组件协同工作。这就像把专业的维修团队整合到整个工厂体系中…

作者头像 李华
网站建设 2026/6/9 22:33:02

生物智能+提示工程架构师:开启前所未有的技术新纪元

生物智能+提示工程架构师:开启前所未有的技术新纪元 关键词:生物智能、提示工程架构师、技术融合、人工智能、神经科学 摘要:本文深入探讨了生物智能与提示工程架构师相结合所开启的全新技术纪元。首先介绍了生物智能和提示工程架构师的背景及重要性,接着解析了相关核心概…

作者头像 李华