본문 바로가기

Verilog/HDLbits

[HDLBits] Exams/ece241 2013 q12

1. 문제 및 설명

  • 8 X 1 메모리에 해당하는 회로를 설계하시오
    • 쓰기 동작을 할 떄는 비트를 시프트하여 입력
    • 읽기 동작은 일반적이 RAM처럼 랜텀 액세스 방식으로 수행
  • DFF 8개로 구성된 시프트 레지스터를 설계
    • 시프트 레지스터와 MUX만을 이용해 구현 
    • Q[7:0]: 플리플롭의 출력  
    • S: 입력
    • enable: 시프트 여부 결정
    • A, B, C: 랜덤 액세스 주소
    • Z: 메모리 출력

 

 

2. 모듈 정의

module top_module (
    input clk,
    input enable,
    input S,
    input A, B, C,
    output Z );

 

 

3. 답

module top_module (
    input clk,
    input enable,
    input S,
    input A, B, C,
    output Z ); 
    
    reg [7:0] Q;
    wire [2:0] sel;
    assign sel = {A, B, C};
    
    
    // assign Z = Q[{A, B, C}];
    always@(*)
        begin
            case(sel)
                3'h0: Z = Q[0];
                3'h1: Z = Q[1];
                3'h2: Z = Q[2];
                3'h3: Z = Q[3];
                3'h4: Z = Q[4];
                3'h5: Z = Q[5];
                3'h6: Z = Q[6];
                3'h7: Z = Q[7];
            endcase
        end
        
        
    
    always@(posedge clk)
        begin
        	if(enable)
                Q <= {Q[6:0],S};
            else
                Q <= Q;
        end
                
    

endmodule

'Verilog > HDLbits' 카테고리의 다른 글

[HDLBits] Rule110  (0) 2026.01.25
[HDLBits] Rule90  (0) 2026.01.25
[HDLBits] Exams/2014 q4b  (0) 2026.01.22
[HDLBits] Exams/m2014 q4k  (0) 2026.01.22
[HDLBits] Shift18  (0) 2026.01.22