EDA技术实用教程 | 复习十 | 移位寄存器的行为级描述

移位寄存器的设计

设计一个同步并行预置功能的8位右移移位寄存器。

CLK是移位时钟信号,DIN[7 : 0]是8位并行预置数据端口, LOAD是并行数据预置使能控制信号,QB是串行输出端口。

工作方式:当CLK的上升沿到来时过程被启动。如果这时预置使能LOAD为高电平,则输入端口处的8位二进制数被同步并行置入移位寄存器中,用作串行右移输出的初始值;如果预置使能LOAD为低电平,则执行赋值语句“REG8[6 :0] <= REG8[7 : 1]”,此语句表明:

1)一个时钟周期后将上一时钟周期移位寄存器中的高7位二进制数,即以当前值REG8[7 : 1]更新此寄存器的低7位REG8[6 : 0],且其串行移空的最高位始终由最初并行预置数的最高位填补
2)将上一个时钟周期移位寄存器中的最低位,即当前值REG8[0]向QB输出。

module SHFT1(CLK, LOAD, DIN, QB);
	input CLK, LOAD;
	input [7 :0] DIN;
	output QB;
	reg [7 : 0] REG8;
	always @(posedge CLK)
		begin
				if(LOAD)
					REG8 <= DIN;
				else
					REG8[6 : 0] <= REG8[7 : 0];
				assign	QB = REG8[0];
		end
endmodule

时序仿真图如下:
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值