-
[Verilog] 16x4 SRAM컴퓨터 과학 깨달음/논리 회로 설계 2025. 11. 6. 22:12
1) 이번 주 목표
- 16×4 비트 정적 메모리(SRAM) 설계 및 동작 검증
- 클럭(Clk) 신호에 동기된 Read/Write 제어 로직 구현
- Testbench를 통한 데이터 쓰기(Write) 및 읽기(Read) 검증
2) 16×4 SRAM 설계 (SRAM_16x4.v)
설계 아이디어
- 입력:
- Clk: 클럭 신호
- WR: 1이면 Write, 0이면 Read
- ADDR[3:0]: 접근할 주소 (0~15)
- DATA_IN[3:0]: Write 시 입력할 데이터
- 출력:
- DATA_OUT[3:0]: Read 시 출력되는 데이터
- 내부 구조:→ 4-bit 레지스터 16개를 쌓아 16×4 SRAM 구성.
reg [4-1:0] mem [16-1:0];
- 동작 방식:
- WR = 1 → Write 모드: 해당 주소의 mem에 DATA_IN 저장
- WR = 0 → Read 모드: 해당 주소의 mem 데이터를 DATA_OUT으로 출력
- 모든 동작은 Clk positive edge에 맞춰 수행되어 동기식 SRAM 형태로 구현.

SRAM_16x4.v
3) 테스트 (tb_SRAM_16x4.v)
테스트 시나리오
- 초기화:
- Clk = 0, WR = 0, ADDR = 0000, DATA_IN = 0000
- Write 단계:
- WR = 1로 설정
- ADDR = 0101 위치에 DATA_IN = 1101 저장
- 5 time unit 뒤, ADDR = 0001 위치에 DATA_IN = 1111 저장
- Read 단계:
- 15 time unit 뒤 WR = 0으로 전환 ( posedge와 ADDR change의 synchronize를 위해)
- for문을 이용해 ADDR = 0~15 순회하며 모든 데이터 읽기

tb_SRAM_16x4.v 
시뮬레이션 결과1 
시뮬레이션 결과2 '컴퓨터 과학 깨달음 > 논리 회로 설계' 카테고리의 다른 글
[Verilog] Latch, Flipflop and Register (0) 2025.11.03 [Verilog] Binary to 7 segment Converter & with ALU (0) 2025.10.17 [Verilog] 4-bit 가감산기, 곱셈기, 그리고 미니 ALU (2) 2025.10.04 [Verilog] 2 bit Adder and BCD converter (0) 2025.09.24 [Verilog] decoder and mux (0) 2025.09.17