verilog流水线设计代码_十进制BCD译码器的verilog

verilog流水线设计代码_十进制BCD译码器的verilog流水线概述如下图为工厂流水线,工厂流水线就是将一个工作(比如生产一个产品)分成多个细分工作,在生产流水线上由多个不同的人分步完成。这个待完成的产品在流水线上一级一级往下传递。比如完成一个产品,需要8道工序,每道工序需要10s,那么流水线启动后,不间断工作的话,第一个产品虽然要80s才完成,但是接下来每10s就能产出一个产品。使得速度大大提高。当然这也增加了人员等资源的付出。对于电路的流水线…

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

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

流水线概述

如下图为工厂流水线,工厂流水线就是将一个工作(比如生产一个产品)分成多个细分工作,在生产流水线上由多个不同的人分步完成。这个待完成的产品在流水线上一级一级往下传递。
在这里插入图片描述

比如完成一个产品,需要8道工序,每道工序需要10s,那么流水线启动后,不间断工作的话,第一个产品虽然要80s才完成,但是接下来每10s就能产出一个产品。使得速度大大提高。当然这也增加了人员等资源的付出。

对于电路的流水线设计思想与上述思想异曲同工,也是以付出增加资源消耗为代价,去提高电路运算速度。

流水线设计实例

这里以一个简单的8位无符号数全加器的设计为实例来进行讲解,

实现 assign {c_out,data_out [7:0]} = a[7:0] + b[7:0] +c_in
c_out 为进位位。

(源码链接:https://pan.baidu.com/s/1-imO5A51dJ_pfWpRfOYcHg 提取码:dx0k )

如果有数字电路常识的人都知道,利用一块组合逻辑电路去做8位的加法,其速度肯定比做2位的加法慢。因此这里可以采用4级流水线设计,每一级只做两位的加法操作,当流水线一启动后,除第一个加法运算之外,后面每经过一个2位加法器的延时,就会得到一个结果。

整体结构如下,每一级通过in_valid,o_valid信号交互,分别代表每一级的输入输出有效信号。

在这里插入图片描述

第一级:做最低两位与进位位的加法操作,并将运算结果和未做运算的高六位传给下一级。

在这里插入图片描述

第二级:做2,3两位与上一级加法器的进位位的加法操作,并将本级运算结果和未做运算的高4位传给下一级。

在这里插入图片描述

第三级:做4,5两位与进位位的加法操作,并将运算结果和未做运算的高2位传给下一级。

在这里插入图片描述
第四级:做最高两位与上一级加法器输出的进位位的加法操作,并将结果组合输出。

在这里插入图片描述
仿真结果如下:如图,当整体模块in_valid有效时,送进去的数据a=1,b=5,c_in=1;故经过四个周期后,o_valid信号拉高,同时获得运算结果data_out=7。(本设计的流水线每级延时为一个时钟周期)

在这里插入图片描述

总结

流水线就是通过将一个大的组合逻辑划分成分步运算的多个小组合逻辑来运算,从而达到提高速度的目的。

在设计流水线的时候,我们一般要尽量使得每级运算所需要的时间差不多,从而做到流水匹配,提高效率。因为流水线的速度由运算最慢的那一级电路决定。

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

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

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


相关推荐

  • kubernetes经典收藏[通俗易懂]

    kubernetes经典收藏[通俗易懂]kubernetes如何在Kubernetes中编写自定义控制器以图形化的方式简单介绍KubernetesIngress以图形化的方式简单介绍KubernetesService浅聊Kubernetes的各种认证策略以及适用场景基于Kubernetes的服务网格介绍如何编写一个CoreDNS插件问题Kubernetes疑难杂症排查分享:神秘的溢出与丢包…………

    2022年7月22日
    9
  • mac idea 激活码_最新在线免费激活

    (mac idea 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    187
  • PHP 17: MySQL的简单介绍

    PHP 17: MySQL的简单介绍

    2021年7月23日
    59
  • pycharm中如何导入库_库乐队如何导入相册的视频

    pycharm中如何导入库_库乐队如何导入相册的视频大家都知道,Python是一个极其方便的由库构建的编程语言。比如机器学习的库sklearn,文件读取pandas,文件读写xlwt,xlrt,矩阵运算numpy等等等等等等等等等等,多到你无法想象!那到底如何导入Python库呢?我们今天就来学习一下~点击File->NewProject,创建一个PyCharm项目,然后点击File->Settings->P…

    2022年8月27日
    8
  • nmap命令的详解

    nmap命令的详解使用-sP参数对对应主机段的主机发送ICMP报文,可以查询到哪些主机是存活的。[root@localhost~]#nmap-sP192.168.8.0/24StartingNmap6.40(http://nmap.org)at2018-07-1014:32CSTNmapscanreportfor192.168.8.0Hostisup(0….

    2022年5月8日
    50
  • 云计算解决的主要问题_云数据中心的特征有哪些

    云计算解决的主要问题_云数据中心的特征有哪些有关数据中心的建设问题,不同行业所面临建设问题也是参差不齐,对于传统制造业而言盲目的讨论大数据应用似乎有些空中楼阁,依靠实际经验来发言似乎更有说服力。有关数据中心的建设问题,不同行业所面临建设问题也是参差不齐,对于传统制造业而言盲目的讨论大数据应用似乎有些空中楼阁,依靠实际经验来发言似乎更有说服力。按照原有的组织和业务结构,应用系统是省市两级部署,但随着发展慢慢地向省局集中部署。看似小小的变化导致…

    2022年9月1日
    9

发表回复

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

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