소개
게시글
질문&답변
BRAM read에 관하여
그 부분은 이해했습니다 감사합니다.`timescale 1ns / 1psmodule sram_16x8(addr, clk, din, dout, we);parameter addr_width = 4, word_depth = 16, word_width = 8;input [addr_width-1:0] addr ;input [word_width-1:0] din ;output [word_width-1:0] dout ;input clk, we ;reg [word_width-1:0] mem [0:word_depth-1];reg [word_width-1:0] dout;//Writealways @(posedge clk) beginif(!we)mem[addr] end//Readalways @(posedge clk) beginif(we)dout 하지만 위와 같이 dut를 설계했을 때,(사진)위의 코드대로라면, ①에서 addr의 1과 we의 1을 채고, 이를 기반으로 ②구간에 dout이 mem[1] = 1이여야한다고 생각했지만, ②구간에 dout이 mem[0] = 0이 나왔습니다.read를 할 때는 clock에 동기화돼서 나타나야한다고 생각하는데 왜 async 처럼 동작하는지 잘 모르겠습니다. ps) 다른 dut 생성을 하지 않고, address는 아래와 같이 testbench에서 직접 넣어주었습니다.@(posedge clk); addr = 0; @(posedge clk); addr = 1; @(posedge clk); addr = 2; @(posedge clk); addr = 3; @(posedge clk); addr = 4;
- 1
- 2
- 857
질문&답변
개념 질문드립니다 맛비님.
(사진) 안녕하세요 맛비님! 사실 좀 더 헷갈려서 아이패드에 써서 질문해봅니다! 공개질문하셔도 괜찮습니다! 이렇게 질문하면 혹시 이해하실까요..?
- 3
- 3
- 857