一、函数设计规则1.顶层函数综合为RTL设计的TOP顶层2.子函数综合为RTL中设计的一般module模块3.注意顶层函数不得使用static修饰函数也就是不能采用静态函数二、顶层函数不能使用static修饰的原因1.理解下顶层函数的概念首先顶层函数是函数综合的入口会被综合为RTL的模块函数的参数会被综合为模块的port端口。2.关于static的说明static关键字修饰函数这个函数是静态函数这个函数只是在当前的编译单元是可见的就是在当前的文件可见在其他文件不可见因为static修饰的函数不具备外部链接属性。但是在hls综合流程中工具需要能够访问顶层函数并生成对应的硬件模块。如果你将顶层函数使用static修饰会造成综合工具无法找到这个函数因此无法生成独立的模块因为函数的可见性受限了。三、函数inline or inline off1.子函数使用inline内联可以让其和其上一层的函数的周围逻辑进行合并2.如果inline off那么子函数保持了独立自主性3.inline和inline off使用情况下占用的资源是不一样的四、函数的优化手段1.顶层函数优化可以进行接口优化可以进行端口优化可以使用dataflowpipeline优化可以使用latency优化2.子函数无法对子函数进行接口优化这个是综合工具自己优化限制用户自主优化无法对子函数进行端口优化这个是综合工具自己优化限制用户自主优化可以进行dataflow,pipeline优化可以进行inline和inline off优化可以进行latency优化可以进行函数调用次数限制优化可以对函数进行个性化优化
function函数可综合设计
发布时间:2026/6/7 17:47:57
一、函数设计规则1.顶层函数综合为RTL设计的TOP顶层2.子函数综合为RTL中设计的一般module模块3.注意顶层函数不得使用static修饰函数也就是不能采用静态函数二、顶层函数不能使用static修饰的原因1.理解下顶层函数的概念首先顶层函数是函数综合的入口会被综合为RTL的模块函数的参数会被综合为模块的port端口。2.关于static的说明static关键字修饰函数这个函数是静态函数这个函数只是在当前的编译单元是可见的就是在当前的文件可见在其他文件不可见因为static修饰的函数不具备外部链接属性。但是在hls综合流程中工具需要能够访问顶层函数并生成对应的硬件模块。如果你将顶层函数使用static修饰会造成综合工具无法找到这个函数因此无法生成独立的模块因为函数的可见性受限了。三、函数inline or inline off1.子函数使用inline内联可以让其和其上一层的函数的周围逻辑进行合并2.如果inline off那么子函数保持了独立自主性3.inline和inline off使用情况下占用的资源是不一样的四、函数的优化手段1.顶层函数优化可以进行接口优化可以进行端口优化可以使用dataflowpipeline优化可以使用latency优化2.子函数无法对子函数进行接口优化这个是综合工具自己优化限制用户自主优化无法对子函数进行端口优化这个是综合工具自己优化限制用户自主优化可以进行dataflow,pipeline优化可以进行inline和inline off优化可以进行latency优化可以进行函数调用次数限制优化可以对函数进行个性化优化