我試圖生成一個使用Generate語句彼此相鄰放置的鎖存器數組。我一直在嘗試使用賽靈思約束「RLOC」來做到這一點,但我一直沒有成功。生成語句的Verilog放置約束
下面的代碼將不會成功實現,但應該說明我想要獲得什麼。下面的代碼的問題是約束調用中的「i」沒有被轉換爲一個字符串,這是該調用正在尋找的內容。有沒有人有這樣的經驗?
我正在使用Virtex4和Xilinx ISE 10.1.03進行綜合和實現。我不完全確定我使用的Verilog版本,但我認爲它是Verilog 2001.如果有人也可以告訴我如何檢查我使用的Verilog版本,我將不勝感激。
genvar i;
generate
for (i = 0; i < DATA_WIDTH; i = i + 1)
begin : LATCH
(* RLOC = {"X0Y", i} *)
latch inst_latch (
.d (data_in[i]),
.gate (gate),
.reset (reset),
.q (data_out[i])
);
end
endgenerate
我不認爲你可以用直接的verilog來完成這個任務。我會建議在perl或您選擇的語言中編寫腳本來創建一個verilog文件。如果我有時間,我會自己嘗試這個,並且如果我想出成功的代碼,就可以回答這個問題。 – nguthrie