`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: VHDL Language
// Engineer: Manohar Mohanta
//
// Create Date: 13:15:51 04/10/2016
// Design Name:
// Module Name: shift_register
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module shift_register(
input [3:0] a,
output reg [3:0] y,
input [1:0]shift,
input clk
);
always @(posedge (clk))
begin
if(shift==2'b00)
y=a;
else if(shift==2'b01)
begin
y[0]=a[1];y[1]=a[2];y[2]=a[3];y[3]=a[0];
end
else if(shift==2'b10)
begin
y[0]=a[2];y[1]=a[3];y[2]=a[0];y[3]=a[1];
end
else if(shift==2'b11)
begin
y[0]=a[3];y[1]=a[0];y[2]=a[1];y[3]=a[2];
end
end
endmodule
//////////////////////////////////////////////////////////////////////////////////
// Company: VHDL Language
// Engineer: Manohar Mohanta
//
// Create Date: 13:15:51 04/10/2016
// Design Name:
// Module Name: shift_register
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module shift_register(
input [3:0] a,
output reg [3:0] y,
input [1:0]shift,
input clk
);
always @(posedge (clk))
begin
if(shift==2'b00)
y=a;
else if(shift==2'b01)
begin
y[0]=a[1];y[1]=a[2];y[2]=a[3];y[3]=a[0];
end
else if(shift==2'b10)
begin
y[0]=a[2];y[1]=a[3];y[2]=a[0];y[3]=a[1];
end
else if(shift==2'b11)
begin
y[0]=a[3];y[1]=a[0];y[2]=a[1];y[3]=a[2];
end
end
endmodule
0 comments:
Post a Comment