前言
2023.4.26
一、串转并
把串行输入的数据存储起来,移位寄存器移位,得到并行数据文章来源:https://www.toymoban.com/news/detail-772852.html
module SIPO1 (
input clk ,
input rst_n ,
input din ,
output reg [7:0] dout
);
always @(posedge clk or negedge rst_n) begin :
if(~rst_n) begin
dout <= 8'b0 ;
end
else begin
dout <= {dout[6:0],din}; //数据左移,串行输出的先是最高位
end
end
endmodule
二、并转串
把并行数据缓存下来,再移位一个个数据输出文章来源地址https://www.toymoban.com/news/detail-772852.html
module(
input clk,
input reset,
input [3:0] in,
input en, //使能信号,每次输出一个串行数
output data);
reg [3:0] in_r;
always@(posedge clk)begin
if(!reset)
data <= 1'b0;
else if (en)
in_r <= in;
else
in_r <= in_r<<1;
end
assign data = in_r[3];
endmodule
到了这里,关于verilog手撕代码4——串行数据和并行数据转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!