移位寄存器与寄存器组

移位寄存器在数字电路中扮演重要角色,根据移位方向分为左移、右移和双向类型。它由触发器构成,数据在时钟脉冲下并行或串行输入并按位移位。文章详细介绍了移位寄存器的结构、特点以及四种不同的电路结构:串行输入-串行输出、串行输入-并行输出、并行输入-串行输出和并行输入-并行输出,并提供了verilog代码示例。
摘要由CSDN通过智能技术生成

移位寄存器(shift_reg)

在数字电路中,移位寄存器是一种在若干相同时间脉冲下工作的以触发器为基础的器件,数据以并行或串行的方式输入到该器件中,然后每个时间脉冲依次向左或右移动一个比特,在输出端进行输出。分为左移寄存器、右移寄存器和双向移位寄存器三种。根据移位数据的输入-输出方式,又可将它分为串行输入-串行输出、串行输入-并行输出、并行输入-串行输出和并行输入-并行输出四种电路结构。
移位寄存器具有两个特征:
(1)移位寄存器是由相同的寄存单元所组成。一般说来,寄存单元的个数就是移位寄存器的位数。为了完成不同的移位功能,每个寄存单元的输出与其相邻的下一个寄存单元的输入之间的连接方式也不同。
(2)所有寄存单元共用一个时钟。在公共时钟的作用下,各个寄存单元的工作是同步的。每输入一个时钟脉冲,寄存器的就顺序向左或向右移动一位。通常可按传输方式的不同对CMOS移位寄存器进行分类。移位寄存器的输入方式有串行输入和并行输入之分。串行输入就是在时钟脉冲作用下,把要输入的从一个输入端依次一位一位地送入寄存器;并行输入就是把输入的从几个输入端同时送入寄存器。

使用串行输入-串行输出:
首先说明一种错误的写法:尽管改变了data_in的值,但是data_reg[word_size-1:1]这三位由于是按照之前排列,所以data_in的值并不能通过寄存器传递至data_out,所以在vcs中data_out一直为0。

module shift#(parameter word_size=4)(
	input clk,
	input resetn,
	input data_in,
	output data_out);
reg [word_size-1:0] data
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值