Skip to content
Verilog HDL
2012.04.22 11:08

Shift Register

조회 수 1807 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

어제 오늘 삽질의 결과. -_-ㅋㅋ


전체적인 동작은 

S가 00일 때, Q값 유지

S가 01일 때, D값 msb부터 shift left 하면서 입력

S가 10일 때, D값 lsb부터 shift right 하면서 입력

S가 11일 때, Q = D 바로 입력



//shift register

module shift_reg (Q, D, clk, rst, s);

  input clk, rst;

  input [7:0]D;

  input [1:0]s;

  output [7:0]Q;

  reg [7:0]Q;

  reg [2:0]i=0, j=7;

  

  always @ (posedge clk or negedge rst)

  if(!rst) Q = 0;

  else

    case(s)

      0 : Q = Q;

      1 : 

      begin

        Q = {Q[6:0], D[j]};

        j = j-1;

      end

      2 :

      begin  

        Q = {D[i], Q[7:1]};

        i = i+1;

      end

      3 : Q = D;

    endcase

endmodule





//shift register TEST

module shift_reg_test;

  reg clk, rst;

  reg [7:0]D;

  reg [1:0]s;

  wire [7:0]Q;

  

  shift_reg shifreg (Q, D, clk, rst, s);

  

  initial

  begin

    clk = 0;

    forever #5 clk = !clk;

  end

  

  initial

  begin

    rst = 0;

    #5 rst = 1;

  end

  

  initial

  begin

    D = 8'b10100010;

    s = 0;

    repeat(5) #100 s = s+1;

  end

endmodule



List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
9 Verilog HDL 비트스트림 분석(특정 시퀀스에 반응) 빛담 2012.06.11 5721
8 Verilog HDL 4bit Binary Adder 빛담 2012.04.24 9468
7 Verilog HDL 2CH MUX 빛담 2012.04.22 4744
6 Verilog HDL 신호 만들기 빛담 2012.04.22 3255
5 Verilog HDL BCD Counter 빛담 2012.04.22 10966
» Verilog HDL Shift Register 빛담 2012.04.22 1807
3 C++ 서브함수 불러내서 소수 출력하기 빛담 2012.04.22 8963
2 Verilog HDL 4bit - counter 빛담 2012.04.21 5344
1 C++ pactorial 빛담 2012.04.21 3728
Board Pagination Prev 1 Next
/ 1

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소