2014-10-06 3 views
-1

저는 SystemVerilog에서 새롭고 내부의 값을 확인하여 메모리를 생성하고 싶습니다.덤프 rtl이 메모리를 생성합니다.

generate 
genvar g0, j; 
    for(g0 = 0; g0 < NB_CFGDUMP_SLAVE; g0 = g0 + 1) 
    begin : g_slave   
     cfgdump_chiplet slave (
     .rst_n  (presetn), 
     .clk   (pclk), 
     .cfg_id  (8'(g0)), //CONV_STD_LOGIC_VECTOR(g0, 8)), 
     .data_in  (data_in), 
     .shift  (shift), 
     .data_out  (s_data_cfgdump_to_apb[g0]), 
     .cfgdump_addr (s_cfgdump_addr[g0]), 
     .cfg_data  (s_cfg_data[g0]), 
     .cfg_write (s_cfg_write[g0]), 
     .read_data0 (s_read_data[g0][0][33:0]), 
     .read_data1 (s_read_data[g0][1][33:0]), 
     .read_data2 (s_read_data[g0][2][33:0]), 
     .read_data3 (s_read_data[g0][3][33:0]), 
     .read_data4 (s_read_data[g0][4][33:0]), 
     .read_data5 (s_read_data[g0][5][33:0]), 
     .read_data6 (s_read_data[g0][6][33:0]), 
     .read_data7 (s_read_data[g0][7][33:0]), 
     .read_data8 (s_read_data[g0][8][33:0]), 
     .read_data9 (s_read_data[g0][9][33:0]), 
     .read_data10 (s_read_data[g0][10][33:0]), 
     .read_data11 (s_read_data[g0][11][33:0]), 
     .read_data12 (s_read_data[g0][12][33:0]), 
     .read_data13 (s_read_data[g0][13][33:0]), 
     .read_data14 (s_read_data[g0][14][33:0]), 
     .read_data15 (s_read_data[g0][15][33:0]), 
     .wr_ready  (16'(1)), // ACK write from register 
     .cfg_sel  (s_cfg_sel[g0]) 
    ); 

     for(j = 0; j < nb_target_by_slave; j = j + 1) 
     begin : g_ram 
      ram ram_i (
      .clk   (pclk), 
      .we   (s_cfg_write[g0]), 
      .sel   (s_cfg_sel[g0][j]), 
      .address  (s_cfgdump_addr[g0]), 
      .datain  (s_cfg_data[g0]), 
      .dataout  (s_read_data[g0][j][31:0])    
     ); 

     //end   
     // Redirection du ready sur le bit de poid fort du bus de lecture 
     assign s_read_data[g0][j][33] = s_cfg_sel[g0][j]; 
     // Redirection du code d'erreur sur le bit de poid 32 du bus de lecture 
     assign s_read_data[g0][j][32] = 1; 

내가 성공하지 않고 각 RAM의 값을 덤프 또는 읽기 값이 예상되어 있는지 확인 할 수있는 해결책을 찾기 위해 시도. 누군가 나를 도울 수 있니?

+0

$ writememh/$ writememb 함수를 사용해 보셨습니까? 'always @ (posedge we) begin @ (posedge clk)와 같은 것으로 메모리 모듈 내부에서 호출 할 수 있습니다. $ writememh (mem, $ psprintf ("ram_dump_ % m.hex")); 끝 '또는 그런 것. – Unn

답변

0

GUI 모드 (종지)로 테스트 케이스를 실행하고 모든 메모리를 조사 할 수 있습니다. 메모리 뷰어보다 보입니다. 메모리 뷰어를 사용하여 메모리 데이터를 쉽게 디버깅 할 수 있습니다.

-gui 명령 줄 옵션을 사용하여 GUI 모드로 실행할 수 있습니다. 브라우저를 디자인하고 메모리를 선택하여 마우스 오른쪽 버튼으로 클릭하고 프로브를 작성함으로써 프로브를 작성하십시오.