热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

串/并乘法器的改进:流水线处理

串并行乘法器的速度比较慢,本节就是在上节的基础上对电路进行改进,提高速度。引入流水线的形式,将相邻的两个部分积乘积结构再以加法树的形式相加,形成了结构上的流水化处理。缩短关键路径代

串/并行乘法器的速度比较慢,本节就是在上节的基础上对电路进行改进,提高速度。引入流水线的形式,将相邻的两个部分积乘积结构再以加法树的形式相加,形成了结构上的流水化处理。缩短关键路径


代码:16位的乘法器相乘


module Multiply(

clk,rst,

dataa,datab,

dout

);

input clk; bubuko.com,布布扣

input rst;

input [7:0] dataa;

input [7:0] datab;

output [15:0] dout; 

 

reg [15:0]stored0;

reg [15:0]stored1;

reg [15:0]stored2;

reg [15:0]stored3;

reg [15:0]stored4;

reg [15:0]stored5;

reg [15:0]stored6;

reg [15:0]stored7;

 

reg [16: 0] add01;

reg [16: 0] add23;

reg [16: 0] add45;

reg [16: 0] add67;

 

reg  [17:0] mul_out;

 

always @ (posedge clk or negedge rst)

begin

   if(!rst)

      begin  //初始化寄存器变量

 //        dout <= 16‘d0;

         stored0 <= 16‘d0;

         stored1 <= 16‘d0;

         stored2 <= 16‘d0;

         stored3 <= 16‘d0;

 stored4 <= 16‘d0;

         stored5 <= 16‘d0;

         stored6 <= 16‘d0;

         stored7 <= 16‘d0;

 add01<= 17‘d0;

 add23<= 17‘d0;

 add45<= 17‘d0;

 add67<= 17‘d0;      

 mul_out<= 18‘d0;  

      end

   else

      begin  //实现移位相加

      stored7 <= datab[7]?{1‘b0,dataa,7‘b0}:
8‘b0;

         stored6 <= datab[6]?{2‘b0,dataa,6‘b0}:
8‘b0;

         stored5 <= datab[5]?{3‘b0,dataa,5‘b0}:
8‘b0;

         stored4 <= datab[4]?{4‘b0,dataa,4‘b0}:
8‘b0;

         stored3 <= datab[3]?{5‘b0,dataa,3‘b0}:
8‘b0;

         stored2 <= datab[2]?{6‘b0,dataa,2‘b0}:
8‘b0;

         stored1 <= datab[1]?{7‘b0,dataa,1‘b0}:
8‘b0;

         stored0 <=
datab[0]?{8‘b0,dataa }: 8‘b0;

         add01 <= stored1 + stored0;

         add23 <= stored3 + stored2;

   add45 <= stored5 + stored4;

         add67 <= stored7 + stored6;

         mul_out <= (add01 +
add23)+(add45+add67);

      end

end

 

assign dout = mul_out[15:0];

endmodule

testbench代码为:

 


`timescale 1 ns/ 1 ps

module mult_test;

reg clk;

reg rst;

reg [7:0]dataa;

reg [7:0]datab;

wire [15:0]dout;

Multiply  u1(

.clk(clk),

.rst(rst),

.dataa(dataa),

.datab(datab),

.dout(dout)

);

initial                  
                     
       

begin                    
                     
                     
         

rst = 0;

clk=0; 

#10 rst = 1;

end

       

always #5 clk = ~clk;  

always@(posedge clk)

begin

  dataa = {$random}%15;

  datab = {$random}%13;

end

endmodule 

 

串/并乘法器的改进:流水线处理,布布扣,bubuko.com


推荐阅读
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文详细介绍了如何在CentOS 7操作系统上安装和配置Grafana,包括必要的依赖项安装、插件管理以及服务启动等步骤。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • HDU 1394:线段树优化求解逆序对问题
    本文介绍如何使用线段树高效求解排列中的逆序对问题。通过单点增减和区间求和操作,线段树能够快速处理此类问题,并提供了一种替代树状数组的解决方案。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • TechStride 网站
    TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ... [详细]
  • 本文将带领读者深入了解Android系统源码在手机中的实际表现,通过详细的步骤和专业的解释,帮助你更好地理解Android系统的底层运作机制。 ... [详细]
  • Qt中QSpinBox与QSlider的联动实现
    本文介绍如何在Qt框架下将QSpinBox和QSlider组件进行联动,使用户在拖动滑块或修改文本框中的数值时,两个组件能同步更新,从而提供更加直观和便捷的用户体验。 ... [详细]
  • 本文介绍了如何使用Java中的同步方法和同步代码块来实现两个线程的交替打印。一个线程负责打印1到52的数字,另一个线程负责打印A到Z的字母,确保输出顺序为12A34B...5152Z。 ... [详细]
author-avatar
雪狱冰魂_520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有