Verilog 串并转换电路

数字电路中的串并转换主要设计思想来源于用面积换速度,对数据流进行管理。实现串并转换的主要方式有双口RAM,FIFO,移位寄存器等,对于数据量较大的一般使用双口RAM或者FIFO实现,数据量较小的使用移位寄存器实现。

一、串转并

module serial2parallel(
    input           clk,
    input           rst_n,
    input           data_valid,
    input           data_in,   //一位输入
    output   reg [7:0] data_out	//8位并行输出
    );

always @(posedge clk or negedge rst_n) begin
	if (rst_n == 1'b0)
		data_out <= 8'b0;
	else if (data_valid == 1'b1)
		data_out <= {data_out[6:0], data_in};	//低位先赋值
		//data_out <= {data_in,data_out[7:1]};	//高位先赋值
	else
		data_out <= data_out;
end
endmodule

二、并转串

module parallel2serial(
    input clk,
    input rst_n,
    input data_valid,
    input [7:0]data_in,//输入的8位并行数据
    output data_out	//输出的1位串行数据
);
reg[7:0]data;
always @(posedge clk or negedge rst_n)
    begin
        if(!rst_n)
            data <= 8'b0;
        else if(data_valid)
            data <= data_in;
        else 
            data <= data << 1;
    end
assign data_out = data[7];
endmodule
上一篇:jsp实现计算器功能


下一篇:ArcEngine代码 读取选中栅格的像元N*N邻域像元的值