5. 流水线设计

1. 设计要求

设计要求:输入为两个64bit位宽的操作数(PLUS_A和PLUS_B)。为了达到较快的时钟频率,每两级触发器之间只能实现16bit位宽的加法。该如何实现这个加法。

要求每个时钟周期都有一个操作数输入,一个操作数输出。

题目意思是:比如我当前的时钟频率为500M(2ns),支持2ns时钟频率的最大位宽加法为16bit(位宽越大,组合逻辑越多,消耗时间越多),而目前有两个64bit位宽的操作数需要相加,所以我需要设计一个流水线,在保证500M时钟频率的情况下实现数据相加。

我们的方法是:用四级流水线,每一级实现16bit数据相加,那么4级就可以实现64bit数据加法。

2. 补充

流水线:从工厂引申出来的,每个人分工合作,每个人只负责某一部分的工作。做流水线最重要的是要划分好每个人负责的部分。尽量每个人负责完成的部分时间一样。所以物品就可以一直同步往前走。

对应到电路就是划分时序,每两个触发器之间的逻辑时间尽量一样。

在刚开始的时候会有一个响应时间,响应时间指,从上电到第一个数据开始有的时间(我们需要等第一个数据出来了,后续数据就会按照流水线依次出来)

3. 设计代码

按照图中时序,写下对应代码即可

4. 仿真代码和波形

相关推荐

  1. RISC-V 流水线 CPU 设计 Verilog

    2024-07-19 14:44:02       40 阅读
  2. 【笔记】Helm-5 Chart模板指南-4 模板函数和流水线

    2024-07-19 14:44:02       51 阅读
  3. 8位LED流水设计

    2024-07-19 14:44:02       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 14:44:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 14:44:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 14:44:02       57 阅读
  4. Python语言-面向对象

    2024-07-19 14:44:02       68 阅读

热门阅读

  1. 非结构化网格跨结点并行渲染

    2024-07-19 14:44:02       20 阅读
  2. 快速删除node_modules

    2024-07-19 14:44:02       19 阅读
  3. 小抄 20240714 我即世界

    2024-07-19 14:44:02       20 阅读
  4. 二叉树---找树左下角的值

    2024-07-19 14:44:02       18 阅读
  5. Android 一体机等root后的机器指令截屏

    2024-07-19 14:44:02       20 阅读
  6. 【题解】StarryCoding P211 勇闯高塔

    2024-07-19 14:44:02       22 阅读
  7. Linux 之 设置环境变量

    2024-07-19 14:44:02       24 阅读
  8. 做一只勤劳的小蜜蜂

    2024-07-19 14:44:02       20 阅读
  9. 【ubuntu 网卡混杂模式设置】

    2024-07-19 14:44:02       17 阅读
  10. Hive函数之-posexplode()

    2024-07-19 14:44:02       14 阅读
  11. C语言 杂项笔记

    2024-07-19 14:44:02       18 阅读