「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
相关推荐
遇到困难睡大觉哈哈6 小时前
Harmony os——ArkTS 语言笔记(四):类、对象、接口和抽象类
java·笔记·spring·harmonyos·鸿蒙
程序员东岸6 小时前
《数据结构——排序(中)》选择与交换的艺术:从直接选择到堆排序的性能跃迁
数据结构·笔记·算法·leetcode·排序算法
STLearner7 小时前
AI论文速读 | U-Cast:学习高维时间序列预测的层次结构
大数据·论文阅读·人工智能·深度学习·学习·机器学习·数据挖掘
Ccjf酷儿7 小时前
操作系统 蒋炎岩 4.数学视角的操作系统
笔记
yinchao1637 小时前
EMC设计经验-笔记
笔记
黑客思维者8 小时前
LLM底层原理学习笔记:Adam优化器为何能征服巨型模型成为深度学习的“速度与稳定之王”
笔记·深度学习·学习·llm·adam优化器
松☆8 小时前
Flutter + OpenHarmony 实战:构建离线优先的跨设备笔记应用
笔记·flutter
kk哥88998 小时前
Swift底层原理学习笔记
笔记·学习·swift
Vince丶9 小时前
UE DirectExcel使用笔记
笔记·ue5
AA陈超10 小时前
Lyra学习004:GameFeatureData分析
c++·笔记·学习·ue5·虚幻引擎