ddr_is_ready not being asserted

0

Hi,
I am simulating my design after connecting it to the DDRB, but ddrb_is_ready doesnt get asserted.

I am using the IPI flow. I have customized the F1 IP to enable DDRB interface and connected the DDRB AXI interface and the ddrb_is_ready signal to my design. Now when I run the test, ddrb_is_ready is not asserted. I have ran the simulation for more than 280us, but don't see the ddrb_is_ready going up. Below is the instruction sequence from my test.sv. What am I missing.

initial begin
tb.power_up();
tb.nsec_delay(5000);

  //Read the status register (original wait for 400ns then enable, #40000)  
  tb.peek_bar1(0, `IP_STATUS_REG, rdata, 6'h0);  

  // allow memory to initialize  
  tb.nsec_delay(270000);  
  $finish;  
end
질문됨 5년 전175회 조회
2개 답변
0

Hello fpgamagic,
I guess you have missed the poke_stat routine. That releases the reset to the DDR B.
// tb.poke_stat(.addr(8'h0c), .ddr_idx(0), .data(32'h0000_0000));
tb.poke_stat(.addr(8'h0c), .ddr_idx(1), .data(32'h0000_0000));
//tb.poke_stat(.addr(8'h0c), .ddr_idx(2), .data(32'h0000_0000));

Add this before the peek_bar routine and you should see that ddrb_is_ready is asserted after the delay.

Regards
Bala

답변함 5년 전
0

@awsbalasram Thanks. I found and ended up adding tb.init_ddr() to my routine. Which basically includes exactly the statements pointed out by you. After this I can confirm that the ddr_is_ready signal goes up.
Thanks
fpgamagic

답변함 5년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠