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

文章目录


一、移位寄存器定义

移位寄存器定义

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

三、仿真结果


转载请注明出处!

相关推荐
明德扬9 小时前
Quartus Prime Pro 26.1 更新了什么?Arria 10 FPGA 工程升级与迁移注意事项
fpga开发
9527华安15 小时前
Xilinx Zynq7000系列FPGA纯verilog图像缩放,串口上位机动态调整缩放分辨率,提供4套工程源码和技术支持
fpga开发·图像缩放·zynq7000
Riwuarua15 小时前
从近似0基础开始FPGA开发 -- part.3 ila与debug
fpga开发
松小白song1 天前
FPGA架构解密:为何要用750kHz低频时钟驱动二级缓存?
fpga开发
Riwuarua1 天前
从近似0基础开始FPGA开发 -- part.2 仿真
fpga开发
unicrom_深圳市由你创科技2 天前
国产FPGA的芯片选型应该考虑哪些因素?
fpga开发
明德扬2 天前
高速采集选 Direct RF 还是外置 ADC/FMC?从采样率、JESD204B 和开发周期对比
fpga开发·fpga
明德扬2 天前
机器人为什么需要“感知—控制—计算”一体化?FPGA 多传感器底板设计要点
fpga开发·机器人·fpga
zlinear数据采集卡2 天前
数据采集卡从入门到精通(46):趋势展望——软件定义硬件、AI分析与开源生态
arm开发·stm32·单片机·嵌入式硬件·fpga开发·开源
落chen2 天前
基于FPGA的SDRAM开发-进阶篇
fpga开发