用流水燈來演示一下如何新建 FPGA工程。
首先新建存放項目的文件夾led
在led文件夾中新建3個文件夾par、rtl、sim。
par文件夾用於存放工程文件,rtl存放源代碼,sim存放仿真文件。然後打開Quartus II 軟件。
打開Quartus II後,界面上有兩個選項,一個新建項目嚮導,一個打開工程。
由於還沒有工程文件,所以這裏要選擇新建工程嚮導。
下來直接點下一步。
這裏設置工程路徑,工程名。
點第一個選項後面的顯示3個點的按鈕,然後文件路徑選擇到剛纔新建的led文件夾中的par文件夾。然後點選擇文件夾按鈕。
然後在第二項文件名下輸入led,第三個選項下面會自動出現led。然後點next按鈕。
這個界面是添加已經存在的文件,由於還未編寫文件,所以這裏直接點Next按鈕,跳過選擇。
左上角設備家族中選擇 Cyclone IV E系列,右邊的封裝選 FPGA,引腳數選則256,速度等級選擇8.底下的芯片型號選擇EP4CE10F17C8。
這裏要根據自己使用的芯片型號去選擇,本示例中使用的是EP4CE10F17C8。設置好之後點Next按鈕。
這個界面是設置仿真軟件,如果不使用仿真軟件的話,直接點Next按鈕進行。本項目中需要使用仿真軟件,仿真工具選擇Modelsim,語言格式選擇 Verilog HDL,然後點Next按鈕。
這時候會跳轉到軟件主界面,說明工程已經新建完畢了。
這時候在led文件夾下par文件夾裏面就會多出來幾個文件,這個就是新建的工程文件。
rtl文件夾和sim文件夾裏面此時依然是空的。
下來要給工程裏面新建文件
選擇 File ---- new,新建工程文件。
在打開的新建文件中選擇Verilog HDL File文件,然後點OK按鈕。
這時候會新建一個Verilog1.v的文件,在這個文件中輸入代碼。
module led(
input sys_clk, //系統時鐘
input sys_rst_n, //系統復位,低電平有效
output reg [3:0] led //4個LED
);
// reg define
reg [23:0] counter;
//計數器對系統時鐘計數 計時0.2秒
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
counter <= 24'd0;
else if(counter < 24'd10)
counter <= counter + 1'b1;
else
counter <= 24'd0;
end
//通過移位寄存器控制IO口的高低電平,從而改變LED的顯示狀態
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
led <= 4'b0001; //always中必須用寄存器類型,不能用wire類型
else if(counter == 24'd10)
led[3:0] <= {led[2:0],led[3]}; //計數器爲0時,將最高位移動到最低位
else
led <= led;
end
endmodule
代碼添加完成之後點保存按鈕,將文件保存再led文件下的rtl文件夾中,保存的文件名爲led。
保存成功後,軟件界面中文件名就會自動變爲led.v
然後點工具欄中的開始編譯按鈕,編譯工程。
編譯完成後,左上角task窗口中就會全部顯示綠色對號,同時最下方的信息顯示框也會顯示代碼的錯誤和警告數量。
代碼編譯沒有錯誤後,就要對代碼中的輸入輸出口分配引腳。
點擊工具欄中的Pin Planner按鈕。
打開引腳分配界面
在Location位置直接輸入引腳號,led[3]對應的是F9口,就直接在Location位置輸入f9,輸入完後按回車鍵。
軟件會自動選擇PIN_F9選項,其餘引腳按照此方法依次輸入。
輸入完成後,就可以直接關閉界面了。
這樣一個完整的工程就建立完成了。
此時par和rtl文件夾裏面都有相應的文件,sim文件夾下此時還是空的。因爲還未編寫仿真文件。