数字逻辑电路基础-时序逻辑电路之移位寄存器

文章目录


一、移位寄存器定义

移位寄存器定义

A shift register is a type of digital circuit using a cascade of flip flops where the output of one flip-flop is connected to the input of the next.

移位寄存器是一种将一组D触发器进行级联输出而形成的一种时序逻辑电路。

在设计中经常会用到的一种基础时序电路,比如下面串转并电路,通过将串行输入的码流移位将其转换成并行数据输出。

本文设计一个简单的串并转换器,实现将串行输入数据转换成8位的并行数据进行输出,同时输出一个转换完成标志。


二、verilog源码

c 复制代码
// implement a simple 8bit serial to paralle convertor

module s2p_demo (clk, rstn, din, dout, done);
	input clk;
	input rstn;
	input din;
	output [7:0] dout;
	output done;
	
	reg [2:0] cnt;
	reg done;
	reg done_dly;
	reg [7:0] dout;
	reg [7:0] dout_dly;
	
	always@(posedge clk or negedge rstn)
	begin
		if(!rstn) begin
			dout_dly <= 8'bx; end
		else begin
			dout_dly[cnt] <= din; end
	end
	
	always@(posedge clk or negedge rstn)
	begin
		if(!rstn) begin
			dout <= 8'b0; end
		else if(done_dly) begin
			dout <= dout_dly;
			done <= done_dly; end
		else begin
			dout <= 8'b0;
			done <= done_dly; end
	end
	
	always@(posedge clk or negedge rstn)
	begin
		if(!rstn) begin
			cnt <= 3'b0;
			done_dly <= 1'b0; end
		else if(cnt == 3'b111) begin
			cnt <= 3'b0;
			done_dly <= 1'b1; end
		else begin
			cnt <= cnt + 1'b1;
			done_dly <= 1'b0;
		end
	end
endmodule

三、仿真结果


转载请注明出处!

相关推荐
上班最快乐6 小时前
基于FPGA的APS6404L-3SQR QSPI PSRAM驱动设计(2)
fpga开发
FPGA-ADDA7 小时前
第一篇:软件无线电(SDR)基础与FPGA的角色
fpga开发·fpga·数字电路·dsp·软件无线电
Fpga_User10 小时前
基于Zynq UltraScale+的FLASH固化问题记录
嵌入式硬件·fpga开发
FPGA-ADDA10 小时前
高速数据记录仪19EG_4NVME_EXT_V1.2存储板
fpga开发·fpga·高速存储·mpsoc·大容量存储
Saniffer_SH11 小时前
【每日一题】PCIe链路协商的时候进入Polling compliance如何排错?
服务器·人工智能·驱动开发·嵌入式硬件·测试工具·fpga开发·自动化
亮锅锅来啦11 小时前
Synplify_2023综合时报错clk_out is not input pin
fpga开发
浩子智控11 小时前
航天高可靠性设备开发—抗辐射
嵌入式硬件·fpga开发·硬件工程
XPii12 小时前
FPGA工程师面试资料【1】
fpga开发·面试·职场和发展
沐欣工作室_lvyiyi20 小时前
基于FPGA的电容测试仪设计与实现(论文+源码)
fpga开发·毕业设计·电容测试仪·电阻电容电感测试
GateWorld1 天前
FPGA内部模块详解之三 FPGA的“记忆细胞”——嵌入式块内存(Block RAM)
fpga开发·block ram