想象一下,我們有一個簡單的fpga代碼,我想知道是否有任何方法可以在合成之後觀看特定lookUp表的內容,實際上那些將寫入SRAM的數據將會被寫入如何查看查詢表的內容
module test8(a,b,c
);
input a ;
input b ;
output c;
assign c = a&b;
endmodule
想象一下,我們有一個簡單的fpga代碼,我想知道是否有任何方法可以在合成之後觀看特定lookUp表的內容,實際上那些將寫入SRAM的數據將會被寫入如何查看查詢表的內容
module test8(a,b,c
);
input a ;
input b ;
output c;
assign c = a&b;
endmodule
可能性取決於FPGA廠商工具。
某些工具具有可以找到使用的LUT的GUI平面圖視圖,然後這些LUT可以爲LUT的存儲器內容附加相關的代碼。在Altera的Queatus芯片規劃它可能看起來像:
另一種選擇是,以生成完整的設計的網表,一般從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視圖顯示只使用一個單一的簡單的LUT AND門不落實,因爲這些工具必須實現它,因爲它似乎是自由只要遵守任何時間安排和其他要求。
但最後,關於LUT編碼的具體實現和考慮事項通常被設計者忽略......除了特殊的調試情況。
你可以請詳細解釋一下賽靈思vivado – tohidprogram
我沒有在手Vivado例子,但我敢肯定,你可以找到它你只需點幾下鼠標,現在你就知道該找什麼了。 –