3.22【计组】 流水线加法器

'实验一

`timescale 1ns / 1ps/* ALU模块实现两个32bit数的add、sub、and、or、not、slt功能,
但由于Nexy7输入口限制,将num1简化为8位,在过程中再extend成32位,num2作为内部wire自行赋值,此处赋为5
由于最后的结果在top.v中以七段数码管显示,32位结果不用以led在nexy4显示,因此输出32位结果没有问题*/module alu(input wire [2:0] op,input wire [7:0] num1,output reg [31:0] result);wire [31:0] num2;wire [31:0] sign_extend_num1;assign num2=32'h0000_0001;assign sign_extend_num1={24'h0,num1};always@(*)begincase(op)3'b000:result=sign_extend_num1+num2;3'b001:result=sign_extend_num1-num2;3'b010:result=sign_extend_num1&num2;3'b011:result=sign_extend_num1|num2;3'b100:result=~sign_extend_num1;3'b101:beginif(sign_extend_num1<num2)   result=32'h0000_0001;else                        result=32'h0000_0000;enddefault:result=32'hxxxx_xxxx;endcaseendendmodule
module display(input wire clk,reset,input wire [31:0]s,output wire [6:0]seg,output reg [7:0]ans);reg [20:0]count;reg [3:0]digit; always@(posedge clk,posedge reset)if(reset)  count = 0;else count = count + 1;always @(posedge clk)case(count[20:18])0:beginans = 8'b11111110;digit = s[3:0];end1:beginans = 8'b11111101;digit = s[7:4];end2:beginans = 8'b11111011;digit =s[11:8];end3:beginans = 8'b11110111;digit = s[15:12];end4:beginans = 8'b11101111;digit = s[19:16];end5:beginans = 8'b11011111;digit = s[23:20];end6:beginans = 8'b10111111;digit =s[27:24];end7:beginans = 8'b01111111;digit = s[31:28];endendcaseseg7 U4(.din(digit),.dout(seg));
endmodule
module seg7(input wire [3:0]din,output reg [6:0]dout);always@(*)case(din)5'h0:dout = 7'b000_0001;5'h1:dout = 7'b100_1111;5'h2:dout = 7'b001_0010;5'h3:dout = 7'b000_0110;5'h4:dout = 7'b100_1100;5'h5:dout = 7'b010_0100;5'h6:dout = 7'b010_0000;5'h7:dout = 7'b000_1111;5'h8:dout = 7'b000_0000;5'h9:dout = 7'b000_0100;5'ha:dout = 7'b000_1000;5'hb:dout = 7'b110_0000;5'hc:dout = 7'b011_0001;5'hd:dout = 7'b100_0010;5'he:dout = 7'b011_0000;5'hf:dout = 7'b011_1000;default:dout = 7'b111_1111;        endcase
module top(input wire [2:0] op,    //手动输入aluinput wire [7:0] num1,  //手动输入aluinput wire clk,reset,   //板子上clk、手动rst输入displayoutput wire [6:0]seg,   //display输出output wire [7:0]ans     //display输出);wire [31:0] result;      //alu输出进入displayalu gate1(op,num1,result);display gate2(clk,reset,result,seg,ans);endmodule

流水线加法器

二级流水线就是说把八位的加法分为两半去进行,即前一半和后一半,在前一半里有输入信号cin,后一半里接收前一半的进位信号count_temp

这个逗号就是说把两部分并在了一起,前一部分是4位的,后一部分也是4位的,所以连起来就是一个8位的,即最终的结果

至于4级流水其,就是将其分为4段,每段管两位的加法,然后一级一级的并起来,最后合起来就是8位的结果

如果被暂停的话,就向下一级传Z;刷新的话就是全部置0

这个是说一共32位,然后每算一级,就从最低位截取8位,表示这8位已经被计算,然后去记录哪些还没被计算的结果

sum2[7:0]<=sum1就是说直接继承上一级流水线的前8位结果

然后再计算的时候,是记录缓存里的tmpa1的前8位,然后是让未计算的再更新

先判断是否暂停,如果暂停的话就进位和结果都为z,然后当前级下的temp也都为z

接下来判断是否刷新,如果刷新就进位,结果都刷新,temp也刷新

接下来就是正常运行,如果可以的话,判断上一级进位是否传来一个z,如果传来一个z就说明上一级暂停了,那么这一位也要跟着暂停,进位之类的全都设置为z

不然就把已计算出的位数累加到寄存器上,然后记录本流水线上的结果

仿真

这个就是说每25ns翻转一次,那么就是500ns为10个周期,50ns为一个周期

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/480824.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法与数据结构练习——异或

知识点讲解&#xff1a; 一、异或操作定义&#xff1a; 异或是指相同为0&#xff0c;不同为1&#xff0c;也可理解为无进位相加&#xff01;&#xff01; 很重要&#xff01;&#xff01; 二、关于异或运算的几个性质&#xff1a; 1.0^NN &#xff08;0和任何数异或都…

计算机的错误计算(一百六十九)

摘要 探讨 MATLAB 中一个不动点的计算精度问题。 不动点是一类特殊的循环迭代。它有形式 例1. 已知迭代[1] 计算 显然&#xff0c;每个 均为 0.5 . 下面看看 MATLAB 的计算结果。不妨不用循环语句&#xff0c;直接用算术表达式表示 这时计算结果在如下图片&#xff1a; …

11.25.2024刷华为OD

文章目录 HJ76 尼科彻斯定理&#xff08;观察题&#xff0c;不难&#xff09;HJ77 火车进站&#xff08;DFS&#xff09;HJ91 走格子方法&#xff0c;&#xff08;动态规划&#xff0c;递归&#xff0c;有代表性&#xff09;HJ93 数组分组&#xff08;递归&#xff09;语法知识…

思科实现网络地址转换(NAT)和访问控制列表(ACL)和动态路由配置并且区分静态路由和动态路由配置。

实验拓扑(分为静态路由和动态路由两种) 静态路由互通 动态路由互通 实验背景 这个是想实现外网与内网的连接跟网络的探讨&#xff0c;最终实现互通以及使用并且在网络地址转换后能使用网络然后再这个基础上再配置访问控制列表和网络地址转换的的学习过程。 实验需了解的知识…

Idea 2024.3 突然出现点击run 运行没有反应,且没有任何提示。

写这篇文章的目的是为了提供一个新的解决思路&#xff0c;因为存在同病不同原因。 如果你进行了1. 检查运行配置 (Run Configuration) 2. 清理和重建项目 3. 清除缓存并重启 IDEA 4.排除kotlin 5.重装idea等等操作之后仍然没有解决&#xff0c;可以试着按一下步骤进行解决。 检…

数据结构--树二叉树顺序结构存储的二叉树(堆)

前言 前面我们学习了顺序表、链表、栈和队列&#xff0c;这些都是线性的数据结构。今天我们要来学习一种非线性的数据结构——树。 树的概念及结构 树的概念 树是一种非线性的数据结构&#xff0c;是由n&#xff08;n≥0&#xff09;个有效结点组成的一个具有层次关系的集合…

qt QProxyStyle详解

1、概述 QProxyStyle是Qt框架中QStyle类的一个子类&#xff0c;它提供了一种代理机制&#xff0c;允许开发者在不直接修改现有样式&#xff08;QStyle&#xff09;实现的情况下&#xff0c;对样式行为进行定制或扩展。通过继承QProxyStyle&#xff0c;开发者可以重写其虚方法&…

STL基本算法之copy与copy_backward

copy 不论是对客端程序或对STL内部而言&#xff0c;copy()都是一个常常被调用的函数。由于copy进行的是复制操作&#xff0c;而复制操作不外乎应用assignment operator或者copy construct(copy 算法用的是前者)&#xff0c;但是某些元素型别拥有的是trivial assignment operato…

不可分割的整体—系统思考的微妙法则

不可分割的整体——系统思考的微妙法则 作为企业领导者&#xff0c;我们经常需要做出决策&#xff0c;但有时候&#xff0c;我们会忽略一个事实&#xff1a;每个决策都不是孤立的&#xff0c;它背后都是一个复杂系统的一部分。 无论是市场动态、团队协作&#xff0c;还是产品…

云计算基础-期末复习

第一章&#xff1a;云计算概论 一、云计算的定义与特征 1. 定义&#xff1a; 云计算是一种通过网络以按需、可扩展的方式获取计算资源和服务的模式。它将计算资源视为一种公用事业&#xff0c;用户可以根据需求动态获取和释放资源&#xff0c;而无需了解底层基础设施的细节。…

基于Java的小程序电商商城开源设计源码

近年来电商模式的发展越来越成熟&#xff0c;基于 Java 开发的小程序电商商城开源源码&#xff0c;为众多开发者和企业提供了构建个性化电商平台的有力工具。 基于Java的电子商城购物平台小程序的设计在手机上运行&#xff0c;可以实现管理员&#xff1b;首页、个人中心、用户…

【机器学习】机器学习的基本分类-监督学习-逻辑回归-对数似然损失函数(Log-Likelihood Loss Function)

对数似然损失函数&#xff08;Log-Likelihood Loss Function&#xff09; 对数似然损失函数是机器学习和统计学中广泛使用的一种损失函数&#xff0c;特别是在分类问题&#xff08;例如逻辑回归、神经网络&#xff09;中应用最为广泛。它基于最大似然估计原理&#xff0c;通过…

Milvus 2.5:全文检索上线,标量过滤提速,易用性再突破!

01. 概览 我们很高兴为大家带来 Milvus 2.5 最新版本的介绍。 在 Milvus 2.5 里&#xff0c;最重要的一个更新是我们带来了“全新”的全文检索能力&#xff0c;之所以说“全新”主要是基于以下两点&#xff1a; 第一&#xff0c;对于全文检索基于的 BM25 算法&#xff0c;我们采…

RHCE作业五-shell脚本

一要求&#xff1a; 通过shell脚本分析部署nginx网络服务 1.接收用户部署的服务名称 2.判断服务是否安装 ​ 已安装&#xff1b;自定义网站配置路径为/www&#xff1b;并创建共享目录和网页文件&#xff1b;重启服务 ​ 没有安装&#xff1b;安装对应的软件包 3.测试 判断服务…

分页查询日期格式不对

方式一:在属性上加入注解&#xff0c;对日期进行格式化 方式二:在 WebMvcConfiguration 中扩展Spring MVC的消息转换器&#xff0c;统一对日期类型进行格式化处理 /*** 统一转换处理扩展spring mvc* 后端返回前端的进行统一转化处理* param converters*/Overrideprotected voi…

深度学习3:数据预处理使用Pandas与PyTorch的实践

文章目录 导读一、主题与提纲1.1. 读取数据集1.2. 处理缺失值1.3. 转换为张量格式 二、结论 本文是经过严格查阅相关权威文献和资料&#xff0c;形成的专业的可靠的内容。全文数据都有据可依&#xff0c;可回溯。特别申明&#xff1a;数据和资料已获得授权。本文内容&#xff0…

Tülu 3:重新定义开源大模型的后训练范式

一、引言 在大型语言模型&#xff08;LLM&#xff09;的发展历程中&#xff0c;预训练阶段往往受到最多关注&#xff0c;动辄需要数百万美元算力投入和数万亿token的训练数据。然而&#xff0c;一个鲜为人知但同样关键的事实是&#xff1a;预训练完成的模型实际上并不能直接投…

【机器学习】机器学习的基本分类-监督学习-逻辑回归(Logistic Regression)

逻辑回归是一种分类算法&#xff0c;尽管名字中包含“回归”&#xff0c;但其主要用于解决二分类和多分类问题。它通过学习一个逻辑函数&#xff0c;预测输入属于某个类别的概率。 1. 逻辑回归的基本概念 目标 逻辑回归的目标是找到一个函数 h(x)&#xff0c;输出一个概率值 …

PyMOL操作手册

PyMOL 操作手册 The man will be silent, the woman will be tears. – itwangyang ​ 翻译整理&#xff1a;itwangyanng 2024 年 11月 29 日 目录 初识 PyMOL… 5 0.1 安装 PyMOL… 5 0.1.1 Windows 系统开源版 PyMOL 的安装… 5 0.1.2 教育版 PyMOL 的下载安装……

麒麟系统x86安装达梦数据库

一、安装准备前工作 操作系统&#xff1a;银河麒麟V10&#xff0c;CPU&#xff1a; x86_64 架构 下载地址&#xff0c;麒麟官网&#xff1a;https://www.kylinos.cn/ 数据库&#xff1a;dm8_20220915_x86_kylin10_64 下载地址&#xff0c;达梦数据库官网&#xff1a;https://…