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

磁力搜索引擎不死鸟宁波网站运营优化系统

磁力搜索引擎不死鸟,宁波网站运营优化系统,深圳网站建设的服务,erp生产订单管理系统FIFO(First In First Out)是一种先进先出的存储结构#xff0c;经常被用来在FPGA设计中进行数据缓存或者匹配传输速率。 FIFO的一个关键参数是其深度#xff0c;也就是FIFO能够存储的数据条数#xff0c;深度设计的合理#xff0c;可以防止数据溢出#xff0c;也可以节省…FIFO(First In First Out)是一种先进先出的存储结构经常被用来在FPGA设计中进行数据缓存或者匹配传输速率。 FIFO的一个关键参数是其深度也就是FIFO能够存储的数据条数深度设计的合理可以防止数据溢出也可以节省FPGA资源的消耗。 一、FIFO深度计算影响因素 影响FIFO深度计算的主要因素包括: FIFO的位宽决定了每个FIFO存储单元的大小 FIFO的数据字长决定每个数据词包含多少比特有效数据 FIFO的总存储容量决定最大可以存储的数据条数 以32位位宽,8位字长的FIFO为例每个FIFO存储单元需要32/84个字节。 如果FIFO总容量为128字节那么可以存储128/432个数据。 此外,FIFO深度还需要考虑: FPGA资源约束条件过大的FIFO会占用过多资源 实际应用需求深度过小可能导致数据丢失 存储密度选择2的整数次幂作为深度可以优化资源利用 综合考虑上述各因素后确定最佳的FIFO深度。 二、FIFO深度计算步骤 FPGA FIFO深度计算的基本步骤如下 根据传输最恶劣的情况一段时间内缓存数据量最大的时候计算剩余数据量写数据量 - 读数据量。 根据剩余数据总存储容量/写位宽计算FIFO最大可存储的数据量 选择大于等于最大数据量的2的幂作为FIFO深度 将FIFO深度转换为二进制表示 如果写比读慢那就不用担心数据溢出只有读比写慢的时候需要考虑fifo深度设计以防止数据溢出。 三、Verilog代码示例 下面是使用Verilog代码计算FIFO深度的示例: // FIFO参数 parameter DATA_WIDTH 32; // 32位 parameter WORD_SIZE 8; // 8位字长 parameter FIFO_SIZE 128; // 总容量128字节// 每个FIFO存储单元的大小 localparam FIFO_CELL_SIZE DATA_WIDTH / WORD_SIZE;// FIFO最大可存储数据量 localparam FIFO_MAX_WORDS FIFO_SIZE / FIFO_CELL_SIZE; // 选择大于FIFO_MAX_WORDS的2的幂 localparam FIFO_DEPTH (FIFO_MAX_WORDS 0) ? (2**$clog2(FIFO_MAX_WORDS)) : 1;// FIFO深度比特宽 localparam FIFO_DEPTH_WIDTH $clog2(FIFO_DEPTH); 这个示例中,根据位宽32位、字长8位和容量128字节计算出FIFO深度为32,需要5比特表示。 四、SystemVerilog代码示例 下面是使用SystemVerilog编写的等价代码: // FIFO参数 localparam int DATA_WIDTH 32; localparam int WORD_SIZE 8; localparam int FIFO_SIZE 128;// 每个FIFO存储单元的大小 localparam int FIFO_CELL_SIZE DATA_WIDTH / WORD_SIZE;// FIFO最大可存储数据量 localparam int FIFO_MAX_WORDS FIFO_SIZE / FIFO_CELL_SIZE;// 选择大于FIFO_MAX_WORDS的2的幂 localparam int FIFO_DEPTH (FIFO_MAX_WORDS 0) ? 2**(FIFO_MAX_WORDS.log2) : 1;// FIFO深度比特宽 localparam int FIFO_DEPTH_WIDTH $clog2(FIFO_DEPTH); SystemVerilog通过使用内置的log2函数可以简化代码。 五、FIFO深度计算实例 下面通过一些具体实例进一步说明FIFO深度计算过程。 1、匹配数据带宽 如果FIFO需要匹配指定的数据带宽那么深度计算要考虑串行化因子的影响。 例如需要200MHz的串行LVDS接口使用10位数据那么单位时间内可以传输200MHz * 10位 2Gbps的数据。 如果后端接口是32位宽100MHz,那么其带宽为100MHz * 32位 3.2Gbps。为匹配带宽前端数据需要缓存,此时FIFO深度计算如下: 后端带宽 3.2Gbps 前端带宽 2Gbps 串行化因子 后端带宽/前端带宽 3.2/2 1.6 FIFO深度 串行化因子 1.6 因此,选择FIFO深度为2才能匹配带宽需求。 2、防止数据溢出 如果写入FIFO的数据速率可能高于读取速率那么需要增加FIFO深度来防止数据溢出。 场景1如写入速率是100MB/s,读取速率是80MB/s,允许最大等待时间为50μs,那么需要的FIFO大小计算如下: 写入速率 100MB/s 读取速率 80MB/s 最大等待时间 50μs 额外存储量 写入速率 × 最大等待时间 100MB/s × 50μs 5000bit 因此FIFO深度需要考虑额外存储5000bit的数据量也就是除了正常存储量外还需要确保至少有5000bit的额外FIFO深度。 场景2异步FIFO写时钟100MHZ读时钟80MHZ。读写位宽均为16bit。已知每100个写周期最多写入960bit数据读侧每时钟读取一个数据。问FIFO深度至少为多少 最恶劣情况前100个周期的后连续60个周期写入960bit数据后100个周期的前连续60个周期写入960bit数据。写数据最大数量为连续120个写周期内写入数据量960*2bit 1920 bit用时为120/100 ns。读数据这段时间内的数据量为 120/100 * 80 * 16bit 1536 bit 。最大缓存数据量为 1920 - 1536 384 bit写数据最大缓存深度384/16 24最大深度需要是2的幂次方即为32 3、优化资源利用 有时为了优化资源利用可能需要降低FIFO深度。 例如根据带宽计算,一个18Kb block RAM可以实现depth512的FIFO但考虑到资源限制,只能使用一个9Kb RAM这时可以将FIFO设计为depth256,节省block RAM资源。 同样,为了优化资源利用FIFO深度通常设计为2的整数次幂这可以减少地址解码逻辑所需资源。 六、结论 FIFO深度计算并不复杂但需要考虑许多实际因素如带宽匹配、防溢出和资源优化等。一般来说根据存储需求计算出最大深度再综合考虑资源和性能约束选择大于等于该最大深度的2的幂次方作为最终FIFO深度既能满足存储需求又可以优化FPGA资源利用。 本文将不断定期更新中码字不易点⭐️赞收⭐️藏一下不走丢哦 本文由FPGA入门到精通原创有任何问题都可以在评论区和我交流哦 您的支持是我持续创作的最大动力如果本文对您有帮助请给一个鼓励谢谢。
http://wiki.neutronadmin.com/news/120937/

相关文章:

  • 艺术品电商网站开发北京丰台区做网站公司
  • 网站建设企业服务商北京营销型网站建站公司
  • 重庆免费网站建站模板事件营销的案例
  • 嘉兴网站制作案例荥阳做公司网站的公司
  • 个人建网站网站开发相关专业
  • 营销型网站商城国外网站域名
  • 福建鞋子做淘宝图片网站公司做网站可以用个人域名
  • 做图网站有哪些东西微软公司做网站的软件
  • 网站网页打开的速度什么决定的湖南常德红网百姓呼声
  • 网站建设的域名的选择河南省住房和城乡建设部网站首页
  • 天元建设有限公司网站泰安市最新消息今天
  • 台前做网站的公司深圳h5网站制作
  • 龙江手机网站建设wordpress微博登陆插件
  • 外贸网站seowordpress newcon
  • 海外做淘宝网站网络工程师职业分析
  • 设计网站做多大合适茶叶响应式网站
  • 深圳网站建设延安手机网上银行
  • 东莞做网站做什么赚钱珠海网站制作服务
  • dedecms生成xml网站地图百度云网站建设教程
  • 网页设计新手制作的网站代码免费安全
  • 网站建设中的功能短网址生成器 python
  • 黄埔网站开发一般网站建设需求有哪些
  • 爱站网站长工具广州注册公司程序
  • 网站建设后期石家庄新闻综合频道在线直播回放
  • 给企业做网站的公司西安浙江临海市建设局网站
  • 阿里云做网站买什么软件石家庄网站建设推广公司电话
  • 食品营销网站建设调查问卷网站建设陆金手指下拉贰拾
  • 自做闪图网站广州新公司注册流程及费用
  • 相册网站开发什么是响应式网页
  • 做网站租服务器多少钱往届生做网站编辑