10.30寄存器,寄存器堆

news2024/11/30 14:47:17

寄存器

8位环形移位寄存器

module shift_regist (
    input  wire clk,
    input wire rstn,
    input wire [7:0]D,
    output reg [7:0]Q
);
always @(posedge  clk  or  negedge  rstn) begin
    if(!rstn)
        Q<=8'b000000;
    else
         Q<={D[6:0],D[7]} ;    
end
endmodule //shift_regist 

输入有时钟,复位,D信号,输出为处理后的信号

左移,环形,首尾相连

正常工作的语句,把最高位移到了最低位,其余整体往往前移了一位

右移

寄存器堆

该寄存器堆是CPU中多个寄存器组成的阵列,由32个32位的寄存器构成,两个读数据口(Ra->BusA Rb->BusB),一个写数据口(Rw ->BusW),写数据受使能信号Wen控制,在时钟的下降沿有效
第一种实现方法,代码如下

module D_FF(
     input clk,
	 input [4:0]Ra,
	 input [4:0]Rb, 
	 input [4:0]Rw,
	 input Wen,
	 output [31:0]BusA,
	 output [31:0]BusB,
	 input [31:0]BusW
 );
 
 reg [31:0]DataReg[31:0];

 always@(negedge clk)
  begin 
   if(Wen & Rw!=5'd0)
    DataReg[Rw] <= BusW;
  end  
 
 assign BusA = (Ra==5'd0)?32'd0:DataReg[Ra];
 assign BusB = (Ra==5'd0)?32'd0:DataReg[Rb];
 
endmodule

clk时钟信号,ra,rb是两个端口的读信号,rw是选择写入的寄存器编号,wen决定是读还是写,BUSA,BUSB是两个端口输出的32信号,BUSW是写入的32位信号

由于有32个寄存器,所以需要5位二进制来记录编号 

datareg就是系统建的寄存器,用来寄存数据,前面的【31:0】表示有32个,后面的【31:0】表示每个寄存器记录为32位

电路功能是当是写信号时,执行写操作,无论写不写,都会执行读,只不过如果没有指定地址,就不输出读的结果,可以同时输出两个口的数据

仿真文件

`timescale 1ns/1ns 
`define clk_period  20
module D_FF_tb;

reg  clk;
reg  rst_n;
reg  [4:0] Ra;
reg  [4:0] Rb;
reg  [4:0] Rw;
reg        Wen;
reg  [31:0] BusW;
wire [31:0] BusA;
wire [31:0] BusB;


D_FF D_FF(
	 .clk(clk),
	 .rst_n(rst_n),
	 .Ra(Ra),
	 .Rb(Rb),
	 .Rw(Rw),
	 .Wen(Wen),
	 .BusW(BusW),
	 .BusA(BusA),
	 .BusB(BusB)
);
integer i,j,k;

initial clk = 1'b0;
always #(`clk_period/2)clk = ~clk;
	
initial begin
    rst_n = 1'b0;
	 Ra = 5'b0;
	 Rb = 5'b0;
	 Rw = 5'b0;
	 Wen = 1'b0;
	 #5;
	 rst_n = 1'b1;
    Wen = 1'b1;
	 for (j = 1 ; j < 32; j = j + 1) begin
		        Rw = j;
				BusW = j; 
				#50;

	 end
	Wen = 1'b0;
	
	#5;
	for (i = 1 ; i < 32; i = i + 1) begin
		      Ra = i;
			  #5;
			  
	end
	
	#5;
	for (k = 1 ; k < 32; k = k + 1) begin
		      Rb = k;
			  #5;
			  
	end
	
	#5;
	$stop;
	
end

endmodule

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt入门日记1

目录 1.Qt简介和案例 2.第一个Qt程序 3.学会查看帮助文档 4.创建一个按钮 5.对象树简介 6.Qt的坐标系 7. 信号和槽 7.1自定义信号和槽 7.2信号连接信号 7.3拓展 7.4Qt4版本以前的connect 1.Qt简介和案例 Qt是一个跨平台的C图形用户界面应用程序框架(就是一个库吧…

2024“点点点”测试员如何上岸测试开发岗?附完整学习路线!

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

干货分享 | 一分钟带你了解TSMaster小程序编辑代码智能提示功能

本文给大家带来TSMaster小程序编辑的新功能&#xff0c;其中主要包含&#xff1a;代码编辑智能提示功能、可用外部代码编辑器编辑小程序代码并同步。 本文关键字&#xff1a;C小程序、Python小程序、代码智能提示、外部代码编辑器、Visual Studio 目录/Catalog ● TSMaster的…

11月1日星期三今日早报简报微语报早读

11月1日星期三&#xff0c;农历九月十八&#xff0c;早报微语早读分享。 1、神舟十六号航天员乘组平安抵京&#xff1b; 2、微信/抖音/B站等平台&#xff1a;将推动50万粉以上“自媒体”账号实名信息展示&#xff1b; 3、第三批鼓励仿制药品建议目录公示&#xff0c;包括抗癌…

灰狼优化算法(GWO)python

目录 一、灰狼优化算法的python实现 二、灰狼优化算法与遗传算法的对比分析&#xff08;python&#xff09; 2.1 GWO1.py 2.2 GA1.py 2.3 GWO_vs_GA.py 2.4 运行结果 ​三、基于莱维飞行改进的灰狼优化算法的python实现 一、灰狼优化算法的python实现 import numpy as …

报修软件有什么用?企业如何做好设备管理与维护?

在当今的商业环境中&#xff0c;设备设施的维护和管理已经成为企业运营的重要环节。无论是学校、酒店、物业等大型企事业单位&#xff0c;还是运维集成商、制造工厂等企业单位&#xff0c;都需要对设备设施进行有效的管理。报修软件作为一种智能化的解决方案&#xff0c;为设备…

钉钉会议室无需API开发轻松连接OA、电商、营销、CRM、用户运营、推广、客服等近千款系统

钉钉会议室支持成员管理、主持人权限管理、高级会控、组织内会议全员静音、共享权限控制等会议管理能力&#xff0c;确保会议安全可控的进行。 官网&#xff1a;https://page.dingtalk.com/wow/z/dingtalk/Rax/RoomsIntro 集简云无代码集成平台&#xff0c;轻松连接钉钉会议室…

专业软件测评中心▏App渗透测试的测试流程和注意事项简析

当前&#xff0c;我国数字经济蓬勃发展&#xff0c;为实现高质量发展注入了澎湃动力&#xff0c;App的需求和供给都十分旺盛&#xff0c;因此安全问题逐渐成为用户最为关注的话题之一&#xff0c;而渗透测试至关重要。 一、App渗透测试流程&#xff1a;   1、需求收集&#…

Vray3.6 for SketchUp安装失败错误如何处理?

SketchUp这款软件是一个极受欢迎并且易于使用的3D软件&#xff0c;有很多朋友会通过Sketchup建模或是Sketchup渲染操作。 Sketchup 建模渲染来说&#xff0c;也是较简单的一款软件&#xff0c;今天小编聊的话题不是Sketchup怎样渲染的操作。 而是对于一些新手朋友提到的关于V…

functools模块:让Python编程更高效

​​​​​​​ 概要 不知道小伙伴们在Python编程中&#xff0c;我们经常会遇到一些需要反复使用的代码片段&#xff0c;例如装饰器、高阶函数等。为了提高代码的复用性和可读性&#xff0c;Python提供了functools模块。functools模块包含了许多实用的功能&#xff0c;…

软文推广方案,媒介盒子分享

作为企业宣传的手段&#xff0c;它能用较低的成本获得较好的宣传效果&#xff0c;但有许多企业在进行软文推广时并不起效&#xff0c;这是因为没掌握好方法。今天媒介盒子就来告诉大家&#xff0c;通用的软文推广方案。 一、 明确推广目标以及受众 明确软文推广的目标有助于明…

数字化如何赋能企业降本增效?

在当前高度不确定的市场环境下&#xff0c;降本增效已成为传统企业热议的话题。在这个背景下&#xff0c;企业内部各种“卷”现象层出不穷&#xff0c;各部门都在积极降本、开源节流&#xff0c;同时也在争夺本就不足的企业资源。因此&#xff0c;数字部门在资源受限的情况下&a…

人工智能基础_机器学习016_BGD批量梯度下降求解多元一次方程_使用SGD随机梯度下降计算一元一次方程---人工智能工作笔记0056

然后上面我们用BGD计算了一元一次方程,那么现在我们使用BGD来进行计算多元一次方程 对多元一次方程进行批量梯度下降. import numpy as np X = np.random.rand(100,8) 首先因为是8元一次方程,我们要生成100行8列的X的数据对应x1到x8 w = np.random.randint(1,10,size = (8…

[移动通讯]【Carrier Aggregation-10】【 Radio Resource Control (RRC) Aspects】

前言&#xff1a; 参考《4G/LTE - LTE Advanced》 Carrier Aggregation is a special form of LTE technology that enables UE and Network to use more than one carrier frequencies. Actually this is not a new concept in LTE. You might have used/heard Dual Carrier …

Django3框架-(3)-[使用websocket]:使用channels实现websocket功能;简化的配置和实际使用方式

概述&#xff1a; 对于Django使用channels实现websocket的功能&#xff0c;之前就写了几篇博文了。随着在项目的使用和实际维护来说&#xff0c;重新设置了相关处理方法。 一般来说&#xff0c;前后端都只维护一个全局的连接&#xff0c;通过携带数据来判断具体的操作&#x…

京东协议算法最新版

环境准备 1 com.jingdong.app.mall11.6.4 入口定位 逆向分析&#xff0c;发现 params 里面有一个 sign 以及请求头里面有一个 jdgs 首先我们发现京东的 sign 是 32 位的&#xff0c;猜测其可能是 md5 之类的 hash 算法&#xff0c;既然是 hash 算法&#xff0c;那么就大概率…

程序员不得不知道的三大编程语言,看看你了解吗?

作为一名合格的程序员&#xff0c;不仅要有过硬的技术&#xff0c;还要了解许多基础知识。编程语言可是程序员工作的主力军&#xff0c;但是它是如何产生和发展的&#xff0c;你知道吗&#xff1f;接下来就让我们一起来看看编程语言和它们的发展吧&#xff01;记得点赞加收藏哦…

对 Webpack 的理解

结论先行&#xff1a; Webpack 是目前比较常用的模块打包工具&#xff0c;它能够管理和打包我们开发中所用到的 HTML、 CSS、JS 以及各种静态资源文件。 webpack内部做的事情呢&#xff0c;就是分析出各个模块之间的依赖关系&#xff0c;然后形成资源列表&#xff0c;最终打包…

FL Studio21.2.0.3842中文免费版和谐绿色版本下载

FL Studio21.2.0.3842中文免费版带有 stem 分离和 FL Cloud&#xff0c;这是一项专为 FL Studio 打造的具有里程碑意义的新服务。其他新功能包括 FL Studio Fruity Edition 的 Audio Clips&#xff08;音频剪辑&#xff09;和一个新的模拟建模合成器 Kepler。 为庆祝 FL Studio…