본문 바로가기 보조메뉴바로가기 대메뉴 바로가기

첨단과학기술 시대를 이끌어 나갈 공학도를 양성하는전자공학과 

본문 시작

 

직렬레지스터3

  • 권오근
  • 조회 : 5940
  • 등록일 : 2010-12-06
module shift_register3(DIN, QOUT, CLK, PR, CLR, HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, HEX6, HEX7);
input CLK, PR, CLR;
input DIN;
output QOUT;
output [6:0] HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, HEX6, HEX7;

reg [3:0] Q_TEMP;

assign HEX7 = 7"b1111111;
assign HEX6 = 7"b1111111;
assign HEX5 = 7"b1111111;
assign HEX4 = 7"b1111111;
assign HEX3 = 7"b1111111;
assign HEX2 = 7"b1111111;
assign HEX1 = 7"b1111111;

// 벡터 할당문을 이용한 모델링
always @(posedge CLK or negedge CLR or negedge PR) begin
if(!CLR)
Q_TEMP <= 4"b0000;
else if(!PR)
Q_TEMP <= 4"b1111;
else begin
Q_TEMP[3] <= DIN;
Q_TEMP[2:0] <= Q_TEMP[3:1];
end
end
assign QOUT = Q_TEMP[0];
seg_decoder_4_7 Digit_A(QOUT, HEX0);

endmodule

//########################################
module seg_decoder_4_7 (B, H);
input [3:0] B;
output [6:0] H;

reg [6:0] HOUT;

assign H = HOUT;

always @ (B)
case(B)
4"b0000 : HOUT = 7"b1000000;
4"b0001 : HOUT = 7"b1111001;
4"b0010 : HOUT = 7"b0100100;
4"b0011 : HOUT = 7"b0110000;
4"b0100 : HOUT = 7"b0011001;
4"b0101 : HOUT = 7"b0010010;
4"b0110 : HOUT = 7"b0000011;
4"b0111 : HOUT = 7"b1111000;
4"b1000 : HOUT = 7"b0000000;
4"b1001 : HOUT = 7"b0011000;
4"b1010 : HOUT = 7"b0001000;
4"b1011 : HOUT = 7"b0000011;
4"b1100 : HOUT = 7"b1000110;
4"b1101 : HOUT = 7"b0100001;
4"b1110 : HOUT = 7"b0000110;
default : HOUT = 7"b0001110;
endcase
endmodule

만족도조사
만족도 조사 이 페이지에서 제공하는 정보에 대하여 만족하시나요?