移位寄存器之右移位寄存器(Verilog HDL语言描述)

移位寄存器之右移位寄存器(Verilog HDL语言描述)目录背景测试一VerilogHDL语言描述测试代码仿真波形图测试二VerilogHDL语言描述测试代码仿真图ISE综合RTLSchematic测试三环形移位寄存器(右移)VerilogHDL描述测试代码仿真波形图ISE综合背景之所以单独把这个简单的东西拿出来,就是因为这个东西我可能要用到,不能眼高手低,以为简单就一…

大家好,又见面了,我是你们的朋友全栈君。

目录

背景

测试一

Verilog HDL语言描述

测试代码

仿真波形图

测试二

Verilog HDL语言描述

测试代码

仿真图

ISE综合

RTL Schematic

测试三

环形移位寄存器(右移)

Verilog HDL描述

测试代码

仿真波形图

ISE综合


背景

之所以单独把这个简单的东西拿出来,就是因为这个东西我可能要用到,不能眼高手低,以为简单就一眼带过,之后,用的时候就不能快速地拿出来,处于这个简单的目的,这个知识点贴出来遛遛。

之所以强调非环形移位,很简单,我不想让它具有环形移位的功能呗,我不需要,需要的时候直接改一行代码即可。

以一个位宽为10的右移位寄存器为例吧(解读ADC采样芯片(EV10AQ190A)的采样(工作)模式(双通道模式)这篇博文中用到的ADC芯片采样数据就是10位的,这里是有实际背景的!)

测试一

这种移位寄存器,给一个输入数据之后,在一个时钟上升沿到来时,输出等于输入右移1位,高位补零,然后如果没有输入数据的话,输出就不在变化了,直到又给一个输入,然后时钟上升沿到来时,输入信号右移1位作为输出,如此下去。

Verilog HDL语言描述

//10 bit right shift register
module register(clk, din, dout);

input clk;
input [9:0] din;
output [9:0] dout;
reg [9:0] dout;

always@(posedge clk)
begin
	dout <= {1'b0, din[9:1]};
end


endmodule

测试代码

//testbench file for 10 bit right shift register
`timescale 1ns/1ps
module register_tb;

reg clk;
reg [9:0] din;
wire [9:0] dout;

//clock generation of period 20 ns
always
begin
	#10 clk = ~clk;
end

//initialization
initial
begin
	clk = 1'b0;
	din = 10'b0010110110;
	#200 din = 10'b1110001010;
end

register u1(.clk(clk),.din(din), .dout(dout));


endmodule

仿真波形图

移位寄存器之右移位寄存器(Verilog HDL语言描述)

测试二

如果需要右移3位,则

Verilog HDL语言描述

//10 bit right shift register
module a(clk, din, dout);

input clk;
input [9:0] din;
output [9:0] dout;
reg [9:0] dout;

always@(posedge clk)
begin
	dout <= {3'b000, din[9:3]};
end


endmodule

测试代码

//testbench file for 10 bit right shift register
`timescale 1ns/1ps
module register_tb;

reg clk;
reg [9:0] din;
wire [9:0] dout;

//clock generation of period 20 ns
always
begin
	#10 clk = ~clk;
end

//initialization
initial
begin
	clk = 1'b0;
	din = 10'b0010110110;
	#200 din = 10'b1110001010;
end

register u1(.clk(clk),.din(din), .dout(dout));


endmodule

仿真图

移位寄存器之右移位寄存器(Verilog HDL语言描述)

ISE综合

RTL Schematic

移位寄存器之右移位寄存器(Verilog HDL语言描述)

测试三

环形移位寄存器(右移)

Verilog HDL描述

//10 bit right shift register
module register(clk, din, dout);

input clk;
input [9:0] din;
output [9:0] dout;
reg [9:0] dout;

always@(posedge clk)
begin
	dout <= {din[0], din[9:1]};
end


endmodule

测试代码

//testbench file for 10 bit right shift register
`timescale 1ns/1ps
module register_tb;

reg clk;
reg [9:0] din;
wire [9:0] dout;

//clock generation of period 20 ns
always
begin
	#10 clk = ~clk;
end

//initialization
initial
begin
	clk = 1'b0;
	din = 10'b0010110110;
	#200 din = 10'b1110001010;
end

register u1(.clk(clk),.din(din), .dout(dout));


endmodule

仿真波形图

移位寄存器之右移位寄存器(Verilog HDL语言描述)

ISE综合

RTL Schematic

移位寄存器之右移位寄存器(Verilog HDL语言描述)

事实上,我以前做过移位寄存器的总结:移位寄存器专题

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160258.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 导出微信聊天记录并生成词云[通俗易懂]

    导出微信聊天记录并生成词云转载于:https://www.cnblogs.com/littlehb/p/9473986.html

    2022年4月8日
    68
  • dw中css制作导航,Dreamweaver导航条按钮制作方法

    dw中css制作导航,Dreamweaver导航条按钮制作方法核心提示:教你Dreamweaver用表格巧妙制作导航条按钮看到上面的导航条了吗?你可以点击一下看看它的效果,请注意,这可是用表格做出来的,你相信吗?其实代码很简单,现在让我们来看看该怎么做。1.首先创建一个1×6的表格,参数为:border=0cellspacing=3cellpadding=0;2.在这个表格的每个单元格内分别插入一个表格,宽度和高度设为100%;3.建立一个CSS样式.u…

    2022年7月22日
    13
  • PHP中对PSR-1、PSR-2规范理解

    PHP中对PSR-1、PSR-2规范理解

    2021年5月25日
    115
  • elastic search数据库集群部署「建议收藏」

    elastic search数据库集群部署「建议收藏」ES数据库安装elasticasearchelasticsearch的概念:是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎ApacheLucene基础上的搜索引擎,使用Java语言编写。1、elasticsearch和MongoDB/redis/memcache一样,是非关系性数据库是一个接近实时的搜索平台,从所索引这个文档到能够被搜索到只有一个轻微的延迟,企业应用定位:采用restfullapi标准的可扩展和高可用的实时数据分析

    2022年6月9日
    44
  • linux修改host文件显示没权限_hosts文件修改后需要重启吗

    linux修改host文件显示没权限_hosts文件修改后需要重启吗host文件位置:/etc/hostsvi/etc/hosts即可编辑修改方式类似windows.

    2022年10月12日
    4
  • 电阻器的识别与测量答案_电阻器的判断

    电阻器的识别与测量答案_电阻器的判断原文地址:电阻器的识别与测量作者:绵绵小溪2011年9月14日                                                                     第3周第7,8课时课  题电阻器的识别与测量教学目标知识目标:1)让学生理解色标法、直标法的含义;         2)让学生了解数字万用表测

    2022年8月21日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号