FPGA Introduction Course Training #06 – RAM Memories

YouTube-Channel-Art-Template.png


fpga introduction course training #6 - 1.PNG
– Single port RAM은 D_in, ADDR, we, clk, Q_out을 갖는다. clk의 rising edge에서 we이 1이면 ADDR에 해당하는 위치에 D_in을 기록한다. 그리고 ADDR에 있는 데이터를 Q_out으로 내보낸다. clk의 rising edge에서 we가 0이면 ADDR에 있는 데이터를 Q_out으로 내보내기만 한다.
– Dual port RAM은 두 개의 port를 가지므로, 서로 다른 주소에 쓰기와 읽기를 동일 클럭에 동시에 수행할 수 있다.

fpga introduction course training #6 - 2.PNG
– 위 그림은 RAM을 블록으로 표현한 것이다. 각 블록은 1에서 8의 주소를 갖는다.
– Rising edge에서 we이 1, D_in이 A, ADDR이 1이면 1번 블록에 A를 기록한다.
– Rising edge에서 we이 0, ADDR이 4이면 Q_out은 D를 출력한다.
– Rising edge에서 we이 1, D_in이 FF, ADDR이 7이면 Q_out은 어떻게 되는가? 두 가지 경우가 있을 수 있다. 원래 저장되어 있던 값인 C1을 반환할 수도 있고, 새롭게 저장하는 값인 FF를 반환할 수도 있다. 구현하기에 따라 달라진다.

fpga introduction course training #6 - 3.PNG
– Verilog에서 32비트 크기의 8개 요소 배열을 생성하려면 reg [31:0] RAM_ARR [7:0]과 같이 하면 된다.

Advertisements
Tagged with: , , , , , , , , ,
Posted in FPGA

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Recent Posts
누적 방문자 수
  • 144,076 hits
%d bloggers like this: