热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

关于PIPELINE,也许你应该知道

所谓流水线(pipeline)设计,通常来说是流水生产线。同样,组合逻辑路径可以看作是一条生产线,路径上的每个逻辑单元都可以看作是一个阶段,都会产生时延。如果不采用流水设计,前


所谓流水线(pipeline)设计,通常来说是流水生产线。

同样,组合逻辑路径可以看作是一条生产线,路径上的每个逻辑单元都可以看作是一个阶段,都会产生时延。

  • 如果不采用流水设计,前后级组合逻辑依次工作,那么这条路径的模型就是

原始的生产线。如果采用流水设计,那么前后级组合逻辑可以同时工作,就像新的生产线一样。

在FPGA设计中,通常在适当组合逻辑中插入寄存器,以提高速度。这里对于插入寄存器提高速度,我们暂不分析。

流水线模型

今天我们分析一下在实现CORDIC算法中,流水线操作和控制器操作的比较。

在实现CORDIC算法时,有两种方法。第一是使用流水线操作,不仅能够提高系统速度,而且能够加快输出的速度。

16次迭代流水线仿真输出如下图:

从上图可以看到,使用流水线方式,处理第一次输出需要等待16个时钟周期外,后面的输出将以流水的方式根据输入的有效而不断输出。这种流水线方式适用于要求连续输出的场景。

上图是在C4的FPGA上综合后的资源使用情况,可以看到,资源使用量非常大,其中大量的资源都浪费在加法器以及寄存器的使用上。乘法器资源也用了20%。

第二种方式是使用控制器的模式实现CORDIC算法。

上图是使用控制器的方式实现CORDIC算法,可以看到每个输出都需要等待16个时钟周期,时效性比流水线方式低很多,适用于不需要实时输出的场景。

上图为在C4的FPGA上综合后资源的使用情况。,可以看到,比起流水线操作,控制器方式资源使用大大减少。

上面简单分析了两种方式实现CORDIC算法。我们不能够说谁优谁劣,只能是在不同的场景使用不同的方法达到最后的设计功能。


版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA极客空间 微信公众号


扫描二维码关注杭州卿萃科技FPGA极客空间


 


推荐阅读
  • Jenkins 2.0
    [TOC]Jenkins2.0支持BlueOcean界面,如下:image.png2.0的三个特点:PipelineasCode:全新的开箱体验:即变好看了。1.x兼容性Pipel ... [详细]
  • 当Item在Spider中被收集之后,它将会被传递到ItemPipeline,这些ItemPipeline组件按定义的顺序处理Item。每个ItemPipeline都是实现了简单方 ... [详细]
  • 择要:Fundebug的JavaScript毛病监控插件同步支撑Vue.js异步毛病监控。Vue.js从降生至今已5年,尤大在本年2月份宣布了严重更新,即Vue2.6。更新包含新增 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 本文旨在介绍一系列提升工作效率的浏览器插件和实用小工具,帮助用户在日常工作中更加便捷高效。内容由原作者授权发布。 ... [详细]
  • 尤洋:夸父AI系统——大规模并行训练的深度学习解决方案
    自从AlexNet等模型在计算机视觉领域取得突破以来,深度学习技术迅速发展。近年来,随着BERT等大型模型的广泛应用,AI模型的规模持续扩大,对硬件提出了更高的要求。本文介绍了新加坡国立大学尤洋教授团队开发的夸父AI系统,旨在解决大规模模型训练中的并行计算挑战。 ... [详细]
  • 使用Pandas DataFrame探索十大城市房价与薪资对比
    在本篇文章中,我们将通过Pandas库中的DataFrame工具,深入了解中国十大城市的房价与薪资水平,探讨哪些城市的生活成本更为合理。这是学习Python数据分析系列的第82篇原创文章,预计阅读时间约为6分钟。 ... [详细]
  • 本文介绍了进程的基本概念及其在操作系统中的重要性,探讨了进程与程序的区别,以及如何通过多进程实现并发和并行。文章还详细讲解了Python中的multiprocessing模块,包括Process类的使用方法、进程间的同步与异步调用、阻塞与非阻塞操作,并通过实例演示了进程池的应用。 ... [详细]
  • 垂直泊车路径设计
    本文探讨了垂直泊车路径的设计原理与实现方法。垂直泊车是指汽车从特定位置出发,经过一系列横向和纵向移动,最终达到与车位垂直停放的状态。路径设计旨在确保泊车过程既高效又安全。 ... [详细]
  • Python环境下OpenCV的安装与验证方法
    本文介绍了如何在Python环境中安装OpenCV库及其额外模块,并提供了验证安装是否成功的具体步骤和代码示例。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • 我正在评估Elasticsearch云,并尝试创建一个管道,该管道使用来自数据源的数据并将其 ... [详细]
author-avatar
_Vision_破晓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有