搜索
bottom↓
回复: 8
打印 上一主题 下一主题

怎样证明 一个 生产者-消费者 系统 (fifo)的性能满足要求?

[复制链接]

出95入8汤圆

跳转到指定楼层
1
发表于 2023-12-12 18:29:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题

有   fifo  、 数据提供者  (数据输入) 和 数据消费者 ( 数据输出)

fifo 用 FPGA片外 sdram (或者ddr)实现(读写均有延迟;数据量大,全用bram做 量产太贵 )  , 一个时刻 只支持 一个master的 读或者写操作

数据消费者  对 输出数据的速度(某时间段提供的数据量) 和  时序(延迟、响应 ) 有严格要求


有没有啥方法证明   某个 系统配置 能  达到 设计指标?

我能想的 就是看 仿真时序图

应该 有在设计阶段验证的套路吧,有没有电工能够介绍一下?

出0入25汤圆

2
发表于 2023-12-12 18:57:20 | 只看该作者
这种理论上都可以精确计算的,要知道生产者的最大瞬时速度和最长持续时间,消费者的最慢速度。

这个只能根据你的具体应用场景,针对性的进行理论计算和仿真。

平均速度,生产者大于消费者的就算了,fifo始终要溢出的。

出0入442汤圆

3
发表于 2023-12-12 19:18:08 | 只看该作者
核心数据交换组件的吞吐>=1.2x 实际峰值吞吐,一般可以满足实时性要求。

出95入8汤圆

4
 楼主| 发表于 2023-12-12 19:49:51 来自手机 | 只看该作者
本帖最后由 zzsczz 于 2023-12-12 20:06 编辑
hecat 发表于 2023-12-12 18:57
这种理论上都可以精确计算的,要知道生产者的最大瞬时速度和最长持续时间,消费者的最慢速度。

这个只能根 ...

(引用自2楼)


我描述不够完整

生产者 产生数据可控 (生产和暂停),

消费者获取数据的 量 和 时刻 必须要精确控制(节拍速度和每次获取数据量 根据工艺需求 会有变化),可以理解为向特定decoder提供数据流,帧大小和码率会随应用的改变而变化(如监控静止图像码率低,运动画面码率高;低分辨率源码率低,高分辨率源码率高),播放数据延迟抖动就影响体验

c艹 boost lib软件里有个组件叫无锁队列;但电路实现的内存控制器是唯一资源不支持共享

工程中对于  消费者端时序有严格要求的 fifo系统,用单端口控制器是怎么实现的?
生产者,fifo,消费者在不同时间域,fifi包含一个内存控制器 和,可外加若干bram之类的片上ram,

全用 双端口内存明显 贵得离谱么。

根据  
https://zhuanlan.zhihu.com/p/599914121
描述,“同步脉冲法”、握手协议和异步 FIFO 是“跨时钟域”传递大量数据的三种有效方法,但  消费端延迟  没看到 数据规格 ,内存控制器的延迟没有数据




出95入8汤圆

5
 楼主| 发表于 2023-12-12 21:40:11 来自手机 | 只看该作者
有一个实现idea是 为外部ram做一个  伪双端口的 调用接口作为fifo,
在一个操作周期内 同时实现 读写操作写的(具体策略需要参数设置,先读,不更改,先写可配置),用速度换取功能,延迟会不确定。

这是实现一个跨时钟域的多级缓存、存储设计,比较扯

出300入477汤圆

6
发表于 2023-12-13 10:23:45 来自手机 | 只看该作者
zzsczz 发表于 2023-12-12 21:40
有一个实现idea是 为外部ram做一个  伪双端口的 调用接口作为fifo,
在一个操作周期内 同时实现 读写操作写 ...

(引用自5楼)

只要外部ram的带宽够,然后延迟要求别太离谱,别的都不是问题啊。
最坏情况下所需的fifo容量算岀来是多少,加1.5倍就行。
同时读写根本不是问题,硬件上没有同时这一说。实际的读写逻辑是你写死的。弄个两个bram接受外面真实的读和写,然后内部逻辑只要外部写来的bram的内容够sdram写一次的,就用sdram的批量写全写进去。然后给外部读的bram只要不空,有时间了就从sdram批量读,去填满这个bram。

出300入477汤圆

7
发表于 2023-12-13 10:36:26 | 只看该作者
zzsczz 发表于 2023-12-12 21:40
有一个实现idea是 为外部ram做一个  伪双端口的 调用接口作为fifo,
在一个操作周期内 同时实现 读写操作写 ...
(引用自5楼)

你可以给出详细的时间要求,比如SDRAM时钟多少兆,时序参数是多少。
FPGA的内部工作时钟就跟SDRAM时钟一样即可。
然后你对外要求的读写延迟是多少,一算就知道。
正常人提要求的,能提出的延迟要求应该远远慢于SDRAM的读写速度,所以根本不是问题。

出95入8汤圆

8
 楼主| 发表于 2023-12-13 11:29:11 | 只看该作者
redroof 发表于 2023-12-13 10:23
只要外部ram的带宽够,然后延迟要求别太离谱,别的都不是问题啊。
最坏情况下所需的fifo容量算岀来是多少 ...
(引用自6楼)

理解你的想法

1 小块bram做 缓存  对读端口 和 写端口 进行 乒乓操作   
2 sdram足够快 ,bram大小、 I/O操作的数据尺寸和频率 需要 设计

最坏情况下所需的fifo容量算岀来加1.5倍




出300入477汤圆

9
发表于 2023-12-13 11:44:03 | 只看该作者
zzsczz 发表于 2023-12-13 11:29
理解你的想法

1 小块bram做 缓存  对读端口 和 写端口 进行 乒乓操作   
(引用自8楼)

是的。
设计FPGA的厂家在内部给你BRAM,主要用途就是这个。
内部BRAM是真正的高级双端口RAM,当双口RAM或者当FIFO之类的都行。跨时钟域的事情它都替你做了。你用这种东西的一端直接对外就行。唯一的毛病是容量不大。
要想大容量只能自己外接一个SDRAM,但是这个SDRAM的读写逻辑也可以很简单,因为有高级BRAM替你做接口,你只管完全同步的把SDRAM读写逻辑接到两个BRAM缓存就行。SDRAM只需要做按块读写,其它的啥也不用管。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 12:41

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表