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

文章目录


一、移位寄存器定义

移位寄存器定义

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

三、仿真结果


转载请注明出处!

相关推荐
FPGA-ADDA11 小时前
第四篇:嵌入式系统常用通信接口详解(I2C、SPI、UART、RS232/485、CAN、USB)
人工智能·单片机·嵌入式硬件·fpga开发·信息与通信
421!20 小时前
ESP32学习笔记之GPIO
开发语言·笔记·单片机·嵌入式硬件·学习·算法·fpga开发
dMing`21 小时前
基于FPGA的简易数据采集系统
fpga开发·fpga·adc·dac
LCMICRO-133108477461 天前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
萨文 摩尔杰1 天前
GPS原理学习
学习·fpga开发
Huangichin1 天前
跟着Gemini学System Verilog
fpga开发
LCMICRO-133108477462 天前
长芯微LDC90810完全P2P替代ADC128D818,是一款八通道系统监控器,专为监控复杂系统状态而设计。
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换芯片adc
s09071362 天前
保姆级教程十二:USB摄像头接入!ZYNQ+OpenCV+FPGA硬件加速图像处理实战(视觉终极篇)
图像处理·opencv·fpga开发·zynq·硬件加速
CoderIsArt2 天前
FPGA-based 量子电路仿真
fpga开发
碎碎思2 天前
升级版流水灯:用FPGA控制上千颗RGB LED
fpga开发