inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

[HDL 19장] Internal Memory Interface 에 대해 이해해보자 (FPGA 의 BRAM 을 이해하기 - 이론편)

19장 write first mode example 질문입니다.

163

이상혁/전자공학과

작성한 질문수 4

1

안녕하세요 🙂

[1. 질문 챕터] : 19장 9분경입니다.

[2. 질문 내용] :다이어그램을 보게 되면 WEA ->1 일 때 DINA가 1111로 들어오고 ADDRA는 bb이며 DOUTA는 1111로 보여집니다. 이때 posedge일 때 DINA를 보내고 DOUTA으로 1111이 나오는데 그림상으로는 동기화가 되어보이지 않아 햇갈리는 것 이 있습니다. 이는 출력 앞까지만 있다가 다음 posedge일 때 1111로 나오는 것인가요? 그림상으로는 동기화가 되지 않고 바로 1111으로 나오는 것 처럼 느껴져서 햇갈립니다

[3. 시도했던 내용, 그렇게 생각하는 이유] :

verilog-hdl fpga 임베디드

답변 1

0

설계독학맛비

안녕하세요 🙂

제가 실습코드로 드린 "true_dpbram.v" 는 ram 의 동작을 모델링 한 코드이고요. (지금 다룰 내용은 아니지만 추가로.. 동시에 Xilinx FPGA 에서 합성도 가능, 이거는 FPGA 강의를 들으시면 이 코드 그대로 사용해서 RAM 으로 적용해서 사용합니다.)

실습환경 waveform 에는 모델링 코드를 사용하기 때문에, delay 는 없고요. clock 동기화 된 것 처럼 시뮬레이션이 되죠.

 

보고 계시는 타이밍 다이어그램은 실제 RAM 의 delay 가 적용된 timing diagram 입니다.

data 는 1 cycle 내에 바로 준비 (delay 를 먹은 뒤) 는 되는데요.

결국 "1111" 이란 값의 활성화 시점은 write 를 요청한 1 cycle 이후의 CLKA 가 posedge 시점 이후라는 것을 이해하시면 좋을 것 같아요.

이 말은 모델링 코드인 "true_dpbram.v" 과 같은 timing 을 갖습니다.

동일 cycle 내에 RAM 의 DINA 를 통해 write 한 값을 바로 DOUTA 로 사용한다, 는 것은 Clock 동기화 based 의 설계에서는 불가능하다. 라고도 해석 하시면 되겠습니다. 즉 DINA 를 통해 write 한 값을 DOUTA 로 사용하려면 1 cycle 이후에 valid 해집니다.

 

현업에서 설계할때는 이런 delay 까지 고려하진 않고요. (합성 시 timing met 을 하면됨)

모델링의 clock sync 를 맞추시도록 설계하시면 동작에 문제는 없을꺼에요.

즐공하세요 🙂

latency 개념 구현

1

84

3

비바도 all os버전

1

67

2

초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문

1

68

2

다운로드용량

1

68

2

비바도리눅스설치

1

79

2

전체path복사넣기

1

59

2

Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)

1

142

2

explorer.exe오류

1

99

3

mobaxterm설치오류

1

84

2

./build시, waveform 'divide color' 사용

1

51

2

Latch와 관련하여 (Time borrowing, Latch-based design)

1

122

2

clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.

0

57

1

안녕하세요 설치 관련 질문 드립니다.

1

60

3

16장 mealy 설계.

1

71

2

14장 Cycle 관련, Testbench 코드.

1

63

2

21강(16장) 초기값 설정이 적용되는 시점 질문

1

59

1

20강(15장) - 밀리 머신 관련하여 질문 드립니다.

1

63

2

build에러 질문

0

54

2

1장 ./build에서 에러가 나요

1

70

2

FPGA 강의 보드 문의 드립니다.

1

104

2

5장 DFF특성에 대한 질문

1

73

3

vivado linux 사용 이유.

1

134

2

메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.

1

102

2

디스코드 멤버쉽 등업 관련 문제

1

91

2