THE VLSI HOMEPAGE

A Practical Guide to VLSI Design and Verification..

Serial to Parallel and Parallel to Serial conversion

Posted in Digital Design by Nigam on the October 3rd, 2007

Serial to Parallel conversion is common in designs where the clock runs at slower frequency than the incoming serial stream. To maintain the throughput, the serial data is converted to parallel data. Similarly, high speed parallel data can be converted to serial stream before output from a chip - as it is very hard to manage skew between different data lines.

We will look at verilog implementation of a simple serial to parallel converter and a parallel to serial converter in this post.

CODE:
  1. module serial_to_parallel ( parallel_out, serial_in, shift_enable, clock, reset_n);
  2.  
  3.   parameter SIZE = 4;
  4.   output [SIZE-1] parallel_out;
  5.   input                serial_in;
  6.   input                shift_enable;
  7.   input                clock;
  8.   input                reset_n;
  9.  
  10.   reg [SIZE-1] parallel_out;
  11.  
  12.   always @(posedge clock or negedge reset_n) begin
  13.     if (~reset_n)
  14.       parallel_out <= 0;
  15.     else if (shift_enable)
  16.       parallel_out <= {serial_in, parallel_out[SIZE-1:1]};
  17.     end
  18.  
  19. endmodule

CODE:
  1. module parallel_2_serial (serial_out, parallel_in, load_enable,shift_enable, clock, reset_n);
  2.  
  3.    parameter SIZE=5;
  4.    output serial_out;
  5.    input clock;
  6.    input reset_n;
  7.    input load_enable;
  8.    input shift_enable;
  9.    input [SIZE-1:0] parallel_in;
  10.  
  11.    reg [SIZE-1:0] parallel_r;
  12.  
  13.   always @(posedge clock or negedge reset_n) begin
  14.     if (~reset_n)
  15.       parallel_r <= 0;
  16.     else if (load_enable)
  17.       parallel_r <= parallel_in;
  18.     else if (shift_enable)
  19.       parallel_r <= {1'b0, parallel_r[SIZE-1:1]};
  20.     end
  21.    assign serial_out = parallel_r[0];
  22. endmodule

Sphere: Related Content

Leave a Reply


Close
E-mail It