微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > fsdb波形中,无法dump generate例化的模块?

fsdb波形中,无法dump generate例化的模块?

时间:10-02 整理:3721RD 点击:

有一个顶层,会有如下例化代码:
genvar j;
generate
        for (j=0;j<TSIP_NUM;j=j+1)
        begin:wr_req_buff_inst_loop
            wr_req_buff u_wr_req_buff_tx(
            .clk                 (clk                                                        ) ,
            .reset               (reset                                                      ) ,
            .wr_ddr_req          (tx_ddr_wr_req[j]                                           ) ,
            .wr_ddr_add_bgn      (tx_wr_ddr_add_bgn[ADD_WIDTH*j+:ADD_WIDTH]                  ) ,
            .wr_ddr_blength      (tx_wr_ddr_blength[LEN_WIDTH*j+LEN_WIDTH]                  ) ,
            .ddr_wdata_valid     (tx_ddr_wdata_valid[j]                                      ) ,
            .ddr_wdata           (tx_ddr_wdata[DAT_WIDTH*j+DAT_WIDTH]                       ) ,
            .wr_ddr_op_ack       (tx_wr_ddr_op_ack[j]                                        ) ,
            
            .rd_wr_buff_start    (rd_wr_buff_start[j]                                        ) ,
            .rd_wr_buff_req      (rd_wr_buff_req[j]                                          ) ,
            .wr_data_from_buff   (wr_data_from_buff[j*LOCAL_BUS_WIDTH+LOCAL_BUS_WIDTH]      ) ,
            .wr_inf_from_buff    (wr_inf_from_buff[j*WR_INF_WIDTH+:WR_INF_WIDTH]             ) ,
            .rd_fpck_over        (rd_fpck_over[j]                                            ),
            .wr_req_to_ddr       (wr_req_to_ddr[j]                                           )
            );
end
endgenerate
-----
用modelsim仿真,采用dubussy去看dump出来的fsdb波形。很奇怪,用generate的例化的模块,波形中不存在了。我研究了一下,由于采用generate的例化方法,会将例化proc名称作为一级层次名,这个可能是导致fsdb中没有包含这些模块的原因。但是,我不知道该如何设置,才能dump这些模块的信号。有人遇到过吗或有人知道该如何设置解决吗?

顶起来!

再顶一下,期待有EDA达人知道。

为什么不自己写一个顶层模块,不想写,也可以画原理图,然后用软件转换成语言啊

高级语法就是这样的用法的。如果一个一个手动写,当然是可以啊。当参数变化时,需要不断的修改,麻烦。

顶起来

我前段时间也碰到这种问题,可能是因为Debussy版本比较老,对generate 和 memory类型的语法不支持,换成新版的modelsim 或 Questsim ,就可以解决这个问题

verdi/debussy的版本问题吧?

我看这段代码有些奇怪,for (j=0;j<TSIP_NUM;j=j+1)
        begin:wr_req_buff_inst_loop
            wr_req_buff u_wr_req_buff_tx(
那么generate的block wr_req_buff_inst_loop会被生成TSIP_NUM,同时模块u_wr_req_buff_tx也会被生成TSIP_NUM次,verilog里面要求模块名称唯一,你这么做仿真怎么dump数据?

版本太老



工具会自动的多增加一个层次, wr_req_buff_inst_loop 【*】为0~TSIP_NUM-1.

generate block的name实际上是begin end的name,理论上所有的语句块都可以加,不会出现问题,verdi也不会认错generate block,请检查一下dump scope是否有问题。



`ifdef DEBUSSY
initial
begin
  $fsdbDumpfile("../wave/DEBUSSY.fsdb");
  $fsdbDumpvars(0,tbench);
end
`endif
dump写法什么问题的。

用的debussy window低版本的?
应该是不支持generate语法

$fsdbDumpvars(0,xxx);
$fsdbDumpvars(0,tbgen.dut);
把这个替换一下,
顺便,读取 dut的文件时, 把tb文件也一起读进去就ok了
tb.v dut.v (*vhd.....)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top