「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
相关推荐
hsjiasb11 分钟前
FreeRTOS学习(三十七)——常见错误与工程规范
学习·学习笔记·freertos
小席是个热心肠40 分钟前
Redis的自我学习
数据库·redis·学习
zyf1044161 小时前
暑期实践日志 Day33:完成全部字幕添加,工作基本收尾
学习·计算机网络·剪辑·暑期实践·课题任务
@Mike@2 小时前
09-数据库学习笔记(数据库索引与过滤器)
数据库·笔记
一米阳光86612 小时前
软考(中级)软件设计师核心笔记(9)算法——背包问题
笔记·算法·职场发展·软考·软件设计师·中级职称
Chris _data2 小时前
WPF 上位机开发学习笔记 - 第四天
笔记·学习·wpf
HY小宝F2 小时前
树莓派 FFmpeg 实战笔记(二):命令行、源码编译与硬件编码的真相
学习·职场和发展·ffmpeg
树的枝3 小时前
【STM32】03.中断和EXTI外设
笔记·stm32·单片机·嵌入式硬件
2601_967264283 小时前
Jetpack Compose 实践指南:从入门到进阶
java·学习
Wang's Blog3 小时前
PostgreSQL笔记34:索引优化策略全景解析——从B-tree到HOT的核心原理与实践
数据库·笔记·postgresql