以流水线实现8bit 加法器。

 //date : 2013/8/23
//designer :pengxiaoen
//function : module pipeline (
clock ,reset ,
ina,inb,cin,
sum,cout
);
input clock ,reset;
input [:] ina ,inb ;
input cin;
output [:] sum ;
output cout ; reg [:] tempa,tempb,sum;
reg tempci,firstco,secondco,thirdco,cout;
reg [:] firsts,thirda,thirdb;
reg [:] seconda,secondb,seconds;
reg [:] firsta,firstb,thirds; always @ (posedge clock or negedge reset)
if(!reset)
begin
tempa <= ;
tempb <= ;
tempci<= ;
end
else begin
tempa <= ina;
tempb <= inb;
tempci<= cin;
end //------------------------------1---------------------------
always @(posedge clock)
begin
{firstco , firsts} <= tempa[:] + tempb[:] + tempci;
firsta <= tempa[:];
firstb <= tempb[:];
end //-----------------------------2-----------------------------
always @(posedge clock )
begin
{secondco,seconds} <= {firsta[:]+firstb[:] + firstco, firsts};
seconda <= firsta[:];
secondb <= firstb[:];
end //--------------------------------3---------------------------
always @ (posedge clock )
begin
{thirdco,thirds} <= {seconda[:] + secondb[:] + secondco , seconds};
thirda <= seconda[:];
thirdb <= secondb[:];
end //--------------------------------4-------------------------------
always @ (posedge clock )
begin
{cout ,sum} <= {thirda[:]+thirdb[:]+thirdco,thirds};
end endmodule

流水线的优缺点我就不多说。主要说明一下这个程序里面的注意点。
第一个always 里 对输入数据的后第0—1个bit进行相加。得到结果是 3 个bit。其中一个进位位,2个数据位

第二个alwasys 里对输入数据的后第2—3个bit进行相加。得到的结果是5个bit,其中一个进位位,4个数据位。

第三个alwasys 里对输入数据的后第4—5个bit进行相加。得到的结果是7个bit,其中一个进位位,6个数据位。

第四个alwasys 里对输入数据的后第6—7个bit进行相加。得到的结果是9个bit,其中一个进位位,8个数据位。

四级流水线的8bit加法器的更多相关文章

  1. CPU流水线与指令乱序执行

    青蛙见了蜈蚣,好奇地问:"蜈蚣大哥,我很好奇,你那么多条腿,走路的时候先迈哪一条啊?" 蜈蚣听后说:"青蛙老弟,我一直就这么走路,从没想过先迈哪一条腿,等我想一想再回答你 ...

  2. h.264并行解码算法2D-Wave实现(基于多核非共享内存系统)

    在<Scalable Parallel Programming Applied to H.264/AVC Decoding>书中,作者基于双芯片18核的Cell BE系统实现了2D-Wav ...

  3. ARM 处理器:RISC与CISC 是什么?【转】

    转自:https://blog.csdn.net/willsun2017/article/details/83388990 完全看懂 ARM 处理器:RISC与CISC 是什么? 历史.架构一次看透 ...

  4. 【CPU微架构设计】利用Verilog设计基于饱和计数器和BTB的分支预测器

    在基于流水线(pipeline)的微处理器中,分支预测单元(Branch Predictor Unit)是一个重要的功能部件,它负责收集和分析分支/跳转指令的执行结果,当处理后续分支/跳转指令时,BP ...

  5. 动手写一个简单版的谷歌TPU-指令集

    系列目录 谷歌TPU概述和简化 基本单元-矩阵乘法阵列 基本单元-归一化和池化(待发布) TPU中的指令集 SimpleTPU实例: (计划中) 拓展 TPU的边界(规划中) 重新审视深度神经网络中的 ...

  6. verilog流水线加法器

    四位加法器 两级加法实现 verilog code module pipeliningadder( output reg [3:0] s, output reg co, input [3:0] a, ...

  7. Intel系列CPU的流水线技术的发展

    Intel系列CPU的流水线技术的发展 CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件.对于PC而言,CPU的规格与 ...

  8. 流水线(pipe-line)简介

    1.什么是流水线设计技术? 答:所谓流水线设计实际上是把规模较大.层次较多的组合逻辑电路分为几个级,在每一级插入寄存器组并暂存数据. K级就是有K个寄存器组,从上到下没有反馈电路. 2.流水线设计的深 ...

  9. 计算机体系结构——流水线技术(Pipelining)

    本文导读: 一.并行技术 .并行技术分类 .新技术的设计与实现 .指令周期 二.流水线技术 .什么是流水线 .指令重叠方式 .流水工作设计 .流水线的描述方法(时空图) .流水线特点 三.流水线的分类 ...

随机推荐

  1. 为什么Lisp没有流行起来

    很久以前,这种语言站在计算机科学研究的前沿,特别是人工智能的研究方面.现在,它很少被用到,这一切并不是因为古老,类似古老的语言却被广泛应用.其他类似的古老的语言有??FORTRAN. COBOL. L ...

  2. Protel99se教程三:新建PCB文件以及PCB基本设定

    在上一课,我们绘制好SCH原理图后,在这一节课开始,我们介绍,如何将SCH转化成PCB文件,在这一节课,我们主要给大家讲解,如果新建PCB文件以及载入封装图. 第一步:在Documents目录下,新建 ...

  3. Qt实战之开发软件数据获取助手(eventFilter处理鼠标按下,event处理鼠标松开)

    前段时间,受朋友委托,需要做一个能够获取别人软件文本框中内容的助手.当然这需要调用win api来解决问题.一开始,我想都没想,就用getWindowText()....居然没用,好郁闷.于是查msd ...

  4. 使用Win32 API创建不规则形状&带透明色的窗口

    前一阵突然想起了9月份电面某公司实习时的二面题,大概就是说怎么用Win32 API实现一个透明的窗口,估计当时我的脑残答案肯定让面试官哭笑不得吧.所以本人决定好好研究下这个问题.经过一下午的摸索,基本 ...

  5. java线程学习——汉堡销售问题

    汉堡店中有一个负责做汉堡的厨师,一个负责销售的营业员,用java线程表示他们的营业过程: 问题原型就是生产者与消费者的问题. 首先定义一个汉堡包箱子类与几个相关的变量类: public class H ...

  6. 【Java线程】Lock、Condition

    http://www.infoq.com/cn/articles/java-memory-model-5  深入理解Java内存模型(五)——锁 http://www.ibm.com/develope ...

  7. Happy Matt Friends(dp)

    Happy Matt Friends Time Limit: 6000/6000 MS (Java/Others)    Memory Limit: 510000/510000 K (Java/Oth ...

  8. bootstrap固定响应式导航

    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap. ...

  9. js获取来源和当前域名

    参考:http://www.cnblogs.com/zuosong160522/p/5755615.html http://www.oicqzone.com/pc/2014113020362.html

  10. android中使用surfaceview+MediaPlayer播放视频

    Android中播放视频主要有两种方式: 使用其自带的播放器.指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型 使用android自带的VideoView,这种方法 ...