「Verilog学习笔记」并串转换

专栏前言

本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

串并转换操作是非常灵活的操作,核心思想就是移位。串转并就是把1位的输入放到N位reg的最低位,然后N位reg左移一位,在把1位输入放到左移后的reg的最低位,这样循环,就可以得到,以最高位开始传输,最低位传输完成的N位数据了,最后将这N位数据同时输出,即为串行输入并行输出;并转串就是把并行的N位数据的最高位给1位输出,然后类似的循环左移就可以了。

复制代码
`timescale 1ns/1ns
module huawei5(
	input wire clk  ,
	input wire rst  ,
	input wire [3:0]d ,
	output wire valid_in ,
	output wire dout
	);

//*************code***********//
	reg [3:0] data ; 
	reg [1:0] cnt ; 
	reg valid ; 

	always @ (posedge clk or negedge rst) begin 
		if (!rst) begin 
			data <= 0 ; 
			cnt <= 0 ; 
			valid <= 0 ; 
		end
		else begin 
			if (cnt == 3) begin 
				data <= d ; // 并行输入
				cnt <= 0 ; 
				valid <= 1 ; 
			end
			else begin 
				cnt <= cnt + 1 ; 
				valid <= 0 ; 
				data <= {data[2:0], data[3]} ; // 每个时钟将数据左移,保证每位数据都能出现在最高位
			end
		end
	end

	assign dout = data[3] ; // 每个时钟上升沿读取当前数据的最高位,四个时钟读完
	assign valid_in = valid ; 

//*************code***********//

endmodule
相关推荐
Hello_Embed14 分钟前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中38 分钟前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
Grassto1 小时前
RAG 从入门到放弃?丐版 demo 实战笔记(go+python)
笔记
Magnetic_h2 小时前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
研梦非凡2 小时前
ICCV 2025|从粗到细:用于高效3D高斯溅射的可学习离散小波变换
人工智能·深度学习·学习·3d
limengshi1383923 小时前
机器学习面试:请介绍几种常用的学习率衰减方式
人工智能·学习·机器学习
知识分享小能手4 小时前
React学习教程,从入门到精通,React 组件核心语法知识点详解(类组件体系)(19)
前端·javascript·vue.js·学习·react.js·react·anti-design-vue
周周记笔记5 小时前
学习笔记:第一个Python程序
笔记·学习
丑小鸭是白天鹅5 小时前
Kotlin协程详细笔记之切线程和挂起函数
开发语言·笔记·kotlin
潘达斯奈基~5 小时前
《大数据之路1》笔记2:数据模型
大数据·笔记