Menu
Coddy logo textTech

복습 - 이중 읽기 뱅크

Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 25번째.

challenge icon

챌린지

중급

8비트 워드 네 개를 구현하고, 클록에 동기화된 쓰기 하나와 등록된 이전 데이터 읽기 출력 qa 및 qb 두 개를 구현하세요. we는 waddr에 씁니다. 동기식 rst는 qa와 qb만 초기화합니다. 그렇지 않으면 re가 raddr_a와 raddr_b에서 두 읽기를 모두 활성화하며, 읽기가 비활성화되면 현재 값을 유지합니다. 같은 에지에서 수행되는 쓰기는 이러한 읽기에서 캡처되는 이전 값을 변경하지 않습니다. 테스트에서는 읽기 전에 워드를 초기화합니다. 출력 열: qa, qb. 각 상승 클록 에지 전에 모든 제어 신호와 데이터가 안정된 상태이며, 결과는 그 이후에 관찰됩니다.

design.v를 완성하고 모듈 이름과 포트를 그대로 유지하세요. 잠긴 testbench.v가 입력 변경을 제공하고 안정화된 후 출력을 출력합니다. 시뮬레이터 인수(예: +CASE=1)를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 설계에 출력, 지연 또는 시뮬레이션 종료를 추가하지 마세요. 예상 출력은 관찰마다 한 행의 10진수 값으로 구성되며, 값 사이는 공백 하나로 구분하고 줄바꿈으로 끝나야 합니다.

직접 해보기

module dut (input clk, input rst, input we, input re, input [1:0] waddr, input [1:0] raddr_a, input [1:0] raddr_b, input [7:0] data, output reg [7:0] qa, output reg [7:0] qb);
    // 이 플레이스홀더를 여러분의 설계로 교체하세요.
    initial qa = 0;
    initial qb = 0;
endmodule

RTL 설계 및 검증의 모든 레슨

직접 연습해 보세요: 온라인 Verilog 컴파일러