SRAM 강의 TB 작성 후 waveform 확인시에 dout이 모두 don't care 처리 관련 질문드립니다.
SRAM 기본 모델링 코드 작성후, RTL view통해서 확인시에 dout 값이 모두 xxxxxx로 처리가 되는데, TB 작성에도 문제가 없어보여 고쳐야할 부분이 있는지 문의드립니다.


回答 5
0
@(negedge clk) 에서 입력 세팅 →
posedge clk에서 안정적으로 Write/Read 반영.initial dout = 0;를sram_model에 넣어 첫 출력이x가 아니라 0으로 시작.쓰기 후 읽기에서
dout이 제대로 메모리 값('h10 + i)을 출력하게 됨.
아래 코드로 확인해보시겠어요?module tb_sram;
parameter DEPTH = 8;
parameter WIDTH = 32;
parameter DEPTH_LOG = $clog2(DEPTH);
reg clk;
reg cs, we;
reg [DEPTH_LOG-1:0] ad;
reg [WIDTH-1:0] din;
wire [WIDTH-1:0] dout;
// 클럭 생성
initial begin
clk = 0;
forever #5 clk = ~clk; // 10ns period
end
// Stimulus
initial begin
cs = 0; we = 0; ad = 0; din = 0;
// --- Write Phase ---
for (int i = 0; i < DEPTH; i++) begin
@(negedge clk); // 클럭 하강 에지에서 세팅
cs <= 1;
we <= 1;
ad <= i;
din <= 'h10 + i;
end
// --- Read Phase ---
for (int i = 0; i < DEPTH; i++) begin
@(negedge clk); // 마찬가지로 하강 에지에서 세팅
cs <= 1;
we <= 0;
ad <= i;
end
// 시뮬레이션 종료
repeat (3) @(posedge clk);
$finish;
end
// DUT 연결
sram_model #(DEPTH, WIDTH) u_sram (
.clk (clk),
.cs (cs),
.we (we),
.ad (ad),
.din (din),
.dout(dout)
);
endmodule
0
감사합니다. 말씀주신대로 수정을 하여도 동일하게 dout은 don't care처리가 발생하고 있습니다. 다시 한번 코드 점검을 했는데 빠진게 없는듯하여, 혹시 바쁘시겠지만 빠진 부분이 있는지 확인 한번 부탁드려도 될까요?
0
1) SRAM RTL Code
module sram_model #(
parameter DEPTH=8,
parameter WIDTH=32,
parameter DEPTH_log=$clog2(DEPTH)
)(
input clk,
input cs,we,
input [DEPTH-1:0] ad,
input [WIDTH-1:0] din,
output reg [WIDTH-1:0] dout
);
reg [WIDTH-1:0] mem[DEPTH-1:0];
initial begin /*초기화 시키기 위함*/
for( int i=0; i<DEPTH; i++) mem[i]=0;
end
always @(posedge clk)
if (cs&we) mem[ad] <=din;
else if (cs) dout<=mem[ad];
endmodule
2) tb_SRAM
module sram_model #(
parameter DEPTH=8,
parameter WIDTH=32,
parameter DEPTH_log=$clog2(DEPTH)
)(
input clk,
input cs,we,
input [DEPTH-1:0] ad,
input [WIDTH-1:0] din,
output reg [WIDTH-1:0] dout
);
reg [WIDTH-1:0] mem[DEPTH-1:0];
initial begin /*초기화 시키기 위함*/
for( int i=0; i<DEPTH; i++) mem[i]=0;
end
always @(posedge clk)
if (cs&we) mem[ad] <=din;
else if (cs) dout<=mem[ad];
endmodule
바쁘신와중에 확인해주셔서 감사드립니다.
0
안녕하세요, 답변 남겨드립니다.
SRAM RTL 코드와 testbench 코드 모두 텍스트로 붙여넣어서 올려주실 수 있나요?
그대로 따라하셨겠지만, 혹시 잘못된 부분이 있나 확인해보고자 합니다.
강의 만료일 연장 신청
0
28
2
강의자료 pdf파일
0
87
2
수강기간변경
0
72
2
프로그램 종류
0
87
1
안녕하세요 강의 도중 궁금한 점 있어서 질문드립니다!
0
82
1
수강기간 변경관련
0
61
2
수강기간 만료
0
69
2
수강 연장 문의
0
68
2
I2C SCL_Synched, SDA_Synched 질문
0
81
1
no data path질문
0
101
3
SRAM 강의 modelsim 시뮬레이션에서 inner 메모리를 Objects 리스트에서 찾으려고 하는데 안보입니다.
0
86
2
DataMem 스펙 질문
0
51
1
Hamming Code 질문
0
63
1
W_CRC 값 질문하기
0
58
1
Precharge에 대한 질문
0
163
1
tpsram spec 질문
0
62
2
학습 관련 질문 있습니다!
0
85
2
[과제7] AXI 통신 프로토콜 설계하기 문의드립니다
0
92
2
SRAM Interface Behavior(Diagram) 질문
0
133
3
vivado와 quartus 프로그램의 systhesis 결과 차이에 대해 궁금한 점 있습니다
0
182
2
tool 질문
0
91
2
CDC 메타스태빌리티 질문
0
64
1
SRAM module RTL viewer 이상
0
93
2
slave와 master 시뮬레이션
0
65
2

