Verilog 流水线设计[通俗易懂]

Verilog 流水线设计[通俗易懂]一、什么是流水线流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率(提高处理速度)。二、什么时候用流水线设计使用流水线一般是时序比较紧张,对电路工作频率较高的时候。典型情况如下:1)功能模块之间的流水线,用乒乓buffer来交互数据。代价是增加了memory的数量,但是和获得的巨大性能提升相比,可以忽略不计。2)I/O瓶

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、什么是流水线

流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。 目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率(提高处理速度)。

二、什么时候用流水线设计

使用流水线一般是时序比较紧张,对电路工作频率较高的时候。典型情况如下:

  • 1)功能模块之间的流水线,用乒乓 buffer 来交互数据。代价是增加了 memory 的数量,但是和获得的巨大性能提升相比,可以忽略不计。
  • 2) I/O 瓶颈,比如某个运算需要输入 8 个数据,而 memroy 只能同时提供 2 个数据,如果通过适当划分运算步骤,将大操作分解成小操作就有可能每次只需要2个数据,使用流水线也会减少面积。
  • 3)片内 sram 的读操作,因为 sram 的读操作本身就是两级流水线,除非下一步操作依赖读结果,否则使用流水线是自然而然的事情。
  • 4)组合逻辑太长,比如(a+b)*c,那么在加法和乘法之间插入寄存器是比较稳妥的做法。

三、使用流水线的优缺点

1)优点: 流水线缩短了在一个时钟周期内信号必须通过的通路长度,增加了数据吞吐量,从而可以提高时钟频率,但也导致了数据的延时。举例如下:

例如:一个 2 级组合逻辑&#

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170385.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • updog:一款局域网传输文件的软件

    updog:一款局域网传输文件的软件前言不知道你是否有过这样的需求,在局域网传输文件,苦于没有好的软件支持,或者只能单向传输,updog可以完全解决这种问题安装pip3installupdogupdog是python中的一个第三方库使用updog这里注意updog要在可以读写的路径下面运行,否则访问会出错,或者启动就会报错如果你不想切换到路径去运行,也可以使用-d去指定一个可读写的目录optiona…

    2022年5月29日
    46
  • 414 Request-URI Too Long 15ms[通俗易懂]

    414 Request-URI Too Long 15ms[通俗易懂]这个问题是使用get请求后面跟的参数太多,造成的,解决办法是把get请求换成POST请求@POST@Path(“/poststate”)@Consumes(“application/x-www-form-urlencoded”)@Produces(MediaType.APPLICATION_JSON)publicList<UserState>getPostUserState(@FormParam(“type”)Stringtype,…

    2022年5月2日
    59
  • linux修给主机名

    linux修给主机名linux修给主机名

    2022年4月24日
    37
  • 手把手教你制作网页导航栏

    手把手教你制作网页导航栏手把手教你制作网页导航栏众所周知,导航栏是网页的重要组成部分,本篇文章将会带你由浅入深的制作导航栏,子菜单,样式风格变化等。导航栏的重要部分——ul标签在导航栏中的文字,都是以无序列表ul和li标签实现的。下面通过几个小例子来为大家介绍如何实现网页导航栏的制作。1.用ul标签做一个简单般的菜单样式,首先在一个div盒子里创建一个无序列表,如图所示运行结果如下图所示:2.之后我们可以让列表横过来,需要用到css的浮动样式也就是float标签。我们需要让它向左浮动如图所示:运行结果如

    2022年7月22日
    6
  • 普林斯顿公开课 算法1-5:算法理论

    普林斯顿公开课 算法1-5:算法理论

    2021年11月16日
    45
  • git命令-切换分支

    git命令-切换分支git一般有很多分支,我们clone到本地的时候一般都是master分支,那么如何切换到其他分支呢?主要命令如下

    2022年6月20日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号