(1). 新增一個Project。
(2). 選擇"Tools" > "IP Catalog"。
(3). 在搜尋欄位中輸入"PLL",搜尋到"ALTPLL",點選此IP元件。
(4). IP variation file type選擇"Verilog"語言,之後點選"..."鍵。
(5). 在"檔案名稱:"欄位中輸入存檔名稱,我這裡用"pll",輸入完成按"存檔"。
(6). 按"OK。"
(7). 顯示MegaWizard Plug設定頁面,因為目標板(DE0-Nano)的石英震盪器為50mHz,因此在What is the frequency of the inclk0 input?中輸入"50MHz",之後按"Next>"。
(8). 將Create an 'areset' input to asynchronously reset the PLL、Create 'locked' output,取消勾選,之後按"Next>"。在不需要設定的頁面都直接按"Next>"。
(9). 勾選"Enter output clock frequency:",因為輸出要100mHz因此Requested Settings與Actual Settings欄位不做變更,按"Next>"。如果要輸出 1mHz,Requested Settings與Actual Settings欄位都改成"1.0"。
(10). 取消pll_bb.v的勾選,按"Finish"。
(11). 按"Yes"。
(12). 點選"New",再點選"Verilog HDL File",按"OK"。
(13). 輸入數位電路程式,輸入完成後按"Start Compllation"開始編譯與合成。
module top(
input clkin,
output clkout
);
wire clk_wire;
assign clkout = clk_wire;
pll pll_i(
.inclk0(clkin),
.c0(clk_wire)
);
endmodule
(14). 按"Pin Planner"設定輸入與輸出IO。
(15). 在clkin的Location欄位中輸入"pin_R8",clkout的Location欄位中輸入"pin_B12"。
(16). 按"Programmer",開啟燒錄視窗。
(17). 按"Add Device",目標板(DE0-Nano)上面的FPGA型號為EP4CE22F17C6,因此選擇"EP4CE22F17",按"OK"。
(18). 按"Add File...",選擇output_files檔案路徑下的"xxx.sof"檔,後按"Open"。
(19). 燒錄前確認USB有接上PC,按"Start"開始燒錄。
(20). 因為使用Library IP,我寫Testbench驗證,無法模擬出波形,只好使用示波器驗證。將示波器探棒勾在GPIO_033腳位。
(21). 顯示結果的確是100mHZ。