解串器(deserialize):串行信号转并行信号
输入信号有:
时钟信号clk,
复位信号rst
串行数据输入信号din。
输出信号为8bit并行信号dout。
每经过8个时钟周期,便把收到的8个串行信号合成并行信号并输出,等下8个时钟周期过后再输出下一个并行信号。
module deserialize(
input rst,clk,din,
output reg[7:0] dout
);
reg[7:0] data;
reg[2:0] cnt;
always@(negedge rst, posedge clk)
begin
if(rst == 1'b0)//reset signial
begin
data <= 0;
cnt <= 0;
dout <= 0;
end
else
begin
if (cnt == 3'b111)//get all 8bit data,change dout
begin
dout[7-cnt] <= din;
dout[7:1] <= data[7:1];
cnt <= 0;
end
else
begin
data[7-cnt] <= din;
cnt <= cnt + 1;
end
end
end
endmodule