如何查看查找表的内容

时间:2016-07-06 11:05:30

标签: fpga xilinx vivado

想象一下,我们有一个简单的fpga代码,我想知道是否有任何方法可以在综合后观看特定lookUp表的内容,实际上那些将在SRAM中写入的数据

module test8(a,b,c

    );
    input a ; 
    input b ;
    output c;

    assign c = a&b;

endmodule

Simple AND gate

2 个答案:

答案 0 :(得分:3)

可能性取决于FPGA供应商的工具。

某些工具具有GUI平面视图,其中可以找到使用过的LUT,然后这些LUT可以为LUT的存储器内容附加相关代码。在Altera Queatus Chip Planner中,它可能看起来像:

enter image description here

另一种选择是生成完整设计的网表,通常可以从FPGA工具中写入,然后该网表将包含LUT以及LUT内容的代码。在Altera Quartus生成的Verilog网表中,它可能看起来像:

...
// Location: LABCELL_X10_Y34_N0
cyclonev_lcell_comb \c~0 (
// Equation(s):
// \c~0_combout  = ( \a~input0  & ( \b~input0  ) )

    .dataa(gnd),
    .datab(gnd),
    .datac(!\b~input0 ),
    .datad(gnd),
    .datae(gnd),
    .dataf(!\a~input0 ),
    .datag(gnd),
    .cin(gnd),
    .sharein(gnd),
    .combout(\c~0_combout ),
    .sumout(),
    .cout(),
    .shareout());
// synopsys translate_off
defparam \c~0 .extended_lut = "off";
defparam \c~0 .lut_mask = 64'h000000000F0F0F0F;
defparam \c~0 .shared_arith = "off";
// synopsys translate_on
...

请注意,GUI视图显示AND门不是仅使用一个简单的LUT实现的,因为只要遵守任何时序和其他要求,工具就可以自由地实现它。 p>

但最后,设计人员通常会忽略有关LUT编码的具体实现和注意事项......除非是在特殊的调试情况下。

答案 1 :(得分:1)

我找到了这个Lookuptable的vivado GUI

Vivado