以下是如何通過AS介面進行固化的程序介紹
實驗軟體:quartus II 9.1
實驗板子:terasic DE0
- 知識概論:JTAG模式和AS模式的用途以及區別是什么呢?
答: fpga支持JTAG Programming和Active Serial(AS) Programming兩種mode,
①通過JTAG模式下載的程式,分為 .sof 和 .jic 兩種,其中 .sof 檔案是寫入FPGA的SRAM/EPCS (Flash)里的,斷電后資料會消失,需要重燒,一般運用于仿真除錯,通過JTAG模式把.sof檔案轉化為.jic檔案進行下載,燒寫到配置暫存器里,上電后寫入FPGA,可以實作間接固化,下一篇筆記會寫到 .jic 具體固化程序】;
②通過AS模式下載的檔案是.pof ,是直接寫進FPGA的配置芯片的,斷電后不會消失, - AS固化步驟
①將撰寫好的程式進行編譯(點工具列上那個紫色的小三角編譯)
②點擊File→Convert Programming Files…→在Configuration device那里選擇板子對應的型號(可以查閱板子手冊,簡介里就有寫),此處我通過查閱手冊(見下圖),選擇EPCS4


→在Input files to convert下面的框框里選擇SOF Data→點擊右側Add Sof Data,在彈出框里選擇生成的sof檔案,打開→選中剛剛加進來的.sof檔案→點擊右側的properties→在彈出框里勾選Compression,點擊OK →點擊右下角的Generate→會彈出框顯示Generated…(你的檔案名).sof Successfully【注意:如果顯示unsuccessfully,應該是你的Configuration device寫錯了,一定要查看板子上對應的型號】

③在板子上有一個撥碼開關,當開關撥到上邊時是JTAG介面模式,當開關撥到下邊時是AS介面模式,這里我們把開關撥到下邊,也就是PROG方向,

④Tools→Programmer→ Mode選擇Active Serial Programming,會彈出一個框問你是否確定要改:【some devices in current device list cannot be added to selected Programming mode Active Serial Programming. Do you want to clear all devices current device list and switch to selected mode?】選擇“是”,此時會看到原先方框里的.sof檔案被刪掉了→點擊左側Add file…,選擇剛剛生成的 .pof 檔案 →start
⑤當Progress為100%時,就說明燒錄好了,

⑥把板子電源斷掉,然后重新開啟,會看到七段數碼管已經燒錄成功,【如圖所示,是我燒錄好的“0000”】

附:
我這個實驗最終想要的結果就是實作“0000”穩定常亮,下面是我這個實驗的verilog HDL代碼和BDF原理圖,
代碼
module testone(
OUT);
output [7-1:0] OUT;
reg[7-1:0] OUT;
always @(*) begin
OUT=7'b 1000000;
end endmodule
module testonee(
OUT);
output [7-1:0] OUT;
reg[7-1:0] OUT;
always @(*) begin
OUT=7'b 1000000;
end endmodule
module testoneee(
OUT);
output [7-1:0] OUT;
reg[7-1:0] OUT;
always @(*) begin
OUT=7'b 1000000;
end endmodule
module testoneeee(
OUT);
output [7-1:0] OUT;
reg[7-1:0] OUT;
always @(*) begin
OUT=7'b 1000000;
end endmodule
其實就是四個相同的模塊并列,每個模塊控制一個七段數碼管,可以把四個數碼管用一個模塊控制,因為是恒定常亮,所以可以不用添加時鐘模塊,
BDF原理圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/274479.html
標籤:其他
