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 |