IORDIORD一:新建一個FPGA工程
1.
2.
3.
4.
5.
6. 核心FPGA芯片:選用256個管腳的FPGA芯片Cyclone IV EP4CE6F17C8
7.
8.
9.
10.
10.
11. 保存為test.v,注意要和module的名字一樣。為保證正常的現象,需要將沒有用到的芯片管腳設置為三態輸入,同時將復用的管腳設置為普通IO口。
module test
(
input clk,
input rst_n,
output reg [7:0] LED
);
parameter T_2S=25'd24000000;
reg [24:0] Cnt;
always @(posedge clk,negedge rst_n) begin
if(!rst_n) begin
LED<=8'b1111_1110;
Cnt<=25'd0;
end
else if(Cnt==(T_2S-25'd1)) begin
Cnt<=0;
LED<={LED[6:0],LED[7]};
end
else begin
Cnt<=Cnt+1'b1;
LED<=LED;
end
end
endmodule
12.查看新建的.v文件
13.
14.
15.
16.
17.預編譯
18. 編譯完成
19.分配引腳
20.
21.全編譯
22.燒寫.sof文件
23.
24.燒寫成功
二:添加PLL時鐘信號
在Quartus Prime中要在IP核中找到pll核,才能進行時鐘添加。
雙擊IP catalog,得到下圖界面,點擊ALTPLL
接下來配置時鐘發生器
以下是通用步驟。
step1 這里我新建一個名為PLL的工程如下所示,準備調用一個PLL核
step2 點擊菜單欄上的TOOls下拉菜單中的魔法棒
step3 在彈出的對話框中點擊Next
step4 這里我們選擇輸出文件類型選擇為Verilog HDL,輸出IP核名稱為PLL_out,單擊I/0下拉選擇ALTPLL。
(注意:這里我的工程名為PLL所以起的PLL核的名稱不能和工程名一樣所以我的PLL核的名稱為PLL_out)
step5 填寫PLL核的輸入時鐘,這里我的開發板的輸入時鐘是50M,點擊Next
step6 在彈出的對話框中PLL核默認勾選了復位和輸出使能,我這里不需要用到
將這兩個勾選都去掉(如果工程里面要用到也可以勾選),點擊Next
step7 點擊Next
step8 點擊Next
step9 點擊Next
step10 在彈出的對話框中選擇為1倍頻、50分頻、占空比為百分之50,我這里
輸入是50M所以50分頻輸出也就是1M,點擊Next
step11 一直點擊Next,直到summary(從上圖可以看出我們這個開發板
有5個PLL核分別為clkc0,、clkc1、clkc2、clkc3、clkc4,但我們
只用到1個所以設置其它的4個PLL核都一直Next跳過沒有進行設置,
如果你要多添加幾個PLL核設置方法和clkc0的設置方法是一樣的)。
step12 我們要調用這個PLL核勾選選擇輸出PLL_out_inst.v文件,然后點擊Finish
step 13 PLL核設置完成后點擊工具欄上的打開或者File->open
step14 打開我們建的PLL工程,找到我們設置PLL核所輸出的PLL_out_inst.v文件點擊打開按鈕
step15 打開的文件如下圖所示,將這個文件里的PLL_out核復制到我們工程PLL中
step16 PLL_out核復制到我們的PLL工程里如下圖所示
step17 這里我將PLL的例化名稱改為u1(也可以不更改使用默認名稱),填寫輸入
時鐘i_clk,以及輸出口,我這里直接將PLL核的輸出時鐘連接到了輸出口上
i_clk接FPGA上的晶振輸出,查FPGA手冊可以得到。
軟核的input 與output 與普通模型(module)接口寫的方式不同嗎?
是相同的,最終還是需要晶振輸入時鐘信號。
step18 編譯工程分配引腳用邏輯分析儀看輸出時鐘是否是1M,從下圖可以看出輸出頻率和PLL分頻的頻率一致
|