EP2C:Cyclone II 35:
35家族 F:FBGA 672:672pin C6:speed grade
DE2-70的EP2C70F896C6
EP2C:Cyclone II 70:
70家族 F:FBGA 896:896 pin C6:speed grade
Device family的Family中選擇Cyclone II,在Available devices裏選擇EP2C35F672C6。(DE2上使用的型號)
典型的電腦輔助設計流程
1.新建一個項目(project)
2.Verilog設計輸入
3. 編譯設計
4. 接腳分配
5. 模擬仿真設計電路
6. 規劃、配置FPGA器件
7. 測試設計的電路
設計流程的步驟:
•設計輸入(Design Entry)-- 用原理圖或者硬體描述語言說明設計的電路。
•綜合(Synthesis)-- 將輸入的設計綜合成由FPGA晶片的邏輯元件(logic elements)組成的電路。
•功能仿真(Functional Simulation)-- 測試、驗證綜合的電路功能正確與否,不考慮延時。
•適配(Fitting)-- 將工程的邏輯和時序要求與器件的可用資源相匹配。它將每個邏輯功能分配給最佳邏輯單元位置,進行佈線和時序分析,並選定相應的互連路徑和引腳分配。
•時序分析(Timing Analysis)-- 通過對適配電路的傳播延遲的分析,提供電路的性能指標。
•時序仿真(Timing Simulation)-- 驗證電路的功能和時序的正確性。
•編程和下載配置(Programming and Configuration)-- 在FPGA上實現設計的電路。
如何用Verilog HDL在Quartus II平臺設計和實現電路。包括:
•建立一個新專案(project)
•建立新檔案 用Verilog代碼設計輸入 (verilog HDL File)
•綜合
•組譯processing -> Start compilation
•創建電路符號 File-> Create / Update -> Create Symbol Files for Current File
•開啟RTL 視窗 Tools -> Netlist Viewer -> 適用於DE2-70 的程式 電路符號
•分配管腳
•仿真(模擬)
•編程與下載
//不適用於DE2-70 的程式
module Basic_gate1(
input iA,
input iB,
output reg oAND ,
output reg oOR ,
output reg oXOR ,
output reg oNAND ,
output reg oNOR ,
output reg oXNOR
);
always @ (iA or iB)
begin
oAND = iA & iB;
oOR = iA | iB;
oXOR = iA ^ iB;
oNAND = ~(iA & iB);
oNOR =~(iA | iB);
oXNOR =~(iA^iB);
end
endmodule
======================================
//適用於DE2-70 的程式
module basic_gate(
input [17:0]SW,
input [3:0] KEY,
output [17:0] LEDR,
output [7:0] LEDG,
output [6:0] HEX0,
output [6:0] HEX1,
output [6:0] HEX2,
output [6:0] HEX3,
output [6:0] HEX4,
output [6:0] HEX5,
output [6:0] HEX6,
output [6:0] HEX7
);
assign HEX0=7'b111_1111; //off 7-segment Display
assign HEX1=7'b111_1111;
assign HEX2=7'b111_1111;
assign HEX3=7'b111_1111;
assign HEX4=7'b111_1111;
assign HEX5=7'b111_1111;
assign HEX6=7'b111_1111;
assign HEX7=7'b111_1111;
wire iA,iB;
reg oAND ,oOR ,oXOR , oNAND , oNOR , oXNOR;
assign iA=SW[0];
assign iB=SW[1];
assign LEDR[0]=oAND;
assign LEDR[1]=oOR;
assign LEDR[2]=oXOR;
assign LEDR[3]=oNAND;
assign LEDR[4]=oNOR;
assign LEDR[5]=oXNOR;
always @ (iA or iB)
begin
oAND = iA & iB;
oOR = iA | iB;
oXOR = iA ^ iB;
oNAND = ~(iA & iB);
oNOR =~(iA | iB);
oXNOR =~(iA^iB);
end
endmodule
•建立新檔案 用Verilog代碼設計輸入 (verilog HDL File)
•綜合
•組譯processing -> Start compilation
•創建電路符號 File-> Create / Update -> Create Symbol Files for Current File
•開啟RTL 視窗 Tools -> Netlist Viewer -> 適用於DE2-70 的程式 電路符號
•分配管腳
•仿真(模擬)
•編程與下載
//不適用於DE2-70 的程式
module Basic_gate1(
input iA,
input iB,
output reg oAND ,
output reg oOR ,
output reg oXOR ,
output reg oNAND ,
output reg oNOR ,
output reg oXNOR
);
always @ (iA or iB)
begin
oAND = iA & iB;
oOR = iA | iB;
oXOR = iA ^ iB;
oNAND = ~(iA & iB);
oNOR =~(iA | iB);
oXNOR =~(iA^iB);
end
endmodule
======================================
//適用於DE2-70 的程式
module basic_gate(
input [17:0]SW,
input [3:0] KEY,
output [17:0] LEDR,
output [7:0] LEDG,
output [6:0] HEX0,
output [6:0] HEX1,
output [6:0] HEX2,
output [6:0] HEX3,
output [6:0] HEX4,
output [6:0] HEX5,
output [6:0] HEX6,
output [6:0] HEX7
);
assign HEX0=7'b111_1111; //off 7-segment Display
assign HEX1=7'b111_1111;
assign HEX2=7'b111_1111;
assign HEX3=7'b111_1111;
assign HEX4=7'b111_1111;
assign HEX5=7'b111_1111;
assign HEX6=7'b111_1111;
assign HEX7=7'b111_1111;
wire iA,iB;
reg oAND ,oOR ,oXOR , oNAND , oNOR , oXNOR;
assign iA=SW[0];
assign iB=SW[1];
assign LEDR[0]=oAND;
assign LEDR[1]=oOR;
assign LEDR[2]=oXOR;
assign LEDR[3]=oNAND;
assign LEDR[4]=oNOR;
assign LEDR[5]=oXNOR;
always @ (iA or iB)
begin
oAND = iA & iB;
oOR = iA | iB;
oXOR = iA ^ iB;
oNAND = ~(iA & iB);
oNOR =~(iA | iB);
oXNOR =~(iA^iB);
end
endmodule
適用於DE2-70 的程式 電路符號
不適用於DE2-70 的程式 電路符號
適用於DE2-70 的程式 RTL Viewer
不適用於DE2-70 的程式 RTL Viewer
ModelSim -Altera 模擬步驟程序
1) 開啟舊有專案 File -> Open Project -> 開啟*qpf (quartusii project file)
2) 開始新檔 編輯Verilog HDL File for Test bench (測試平台檔案)
`timescale 1ns/1ps //時間單位 1ns 解析精度1ps
module test_bench1; //Test Bench 檔名 test_bench1
reg A; //將輸入改成 reg 型態
reg B;
wire AND ; //將輸出成 wire 型態
wire OR ;
wire XOR ;
wire NAND ;
wire NOR ;
wire XNOR;
Basic_gate1 DUT //呼叫 模組 Call By name 方式 .iA(A), A 對應iA
(.iA(A),.iB(B),
.oAND(AND),.oOR(OR),
.oXOR(XOR),.oNAND(NAND),
.oNOR(NOR),.oXNOR(XNOR));
initial //設定初始化 A=0 , B=0
begin
A=0; B=0;
end
// 0 50 100 150 200
always #50 A=A+1; //A=0 1 0 1 0 50ns 變化一次 A為1bit長度
always #100 B=B+1; //B=0 0 1 1 0 100ns變化一次 B為1bit長度
endmodule
3) 模擬軟體路徑檔案設定
Tools -> Options -> EDA Tools Options ->ModelSim-Altera 設定路路徑
C:\altera\91sp2\modelsim_ase\win32aloem
4) 模 擬設定 Assigments -> Setting ->EDA Tool Setting -> Simulation 按 Test bench ....進入
Test bench視窗
按New
進入New Test Bench Setting 視窗設定
5) 組譯 processing -> Start Compilation 會自動開啟ModelSim-Altera 模擬視窗
先點一下波形
再點一下 Zoom Full 或Zoom in Zoom Out 控制波形 顯示狀況
6
編程和配置PFPGA
首先連接電源適配器和usb資料線,在DE2開發板上,靠近電源的usb介面連接到資料線。DE2支援2種程式燒錄方式:JTAG和AS。JTAG模式把程式直接寫在FPGA晶片裏,斷電後資料丟失。AS模式把資料寫在配置的存儲晶片裏,每次通電後,資料會自動裝載到FPGA晶片裏。兩種模式的選擇由RUN/PROG開關的位置決定,JTAG模式對應RUN檔,AS模式對應PROG檔。
(1)JTAG模式編程
把RUN/PROG開關置於RUN檔。選擇 Tools
> Programmer 打開視窗。這裏要指定編程用到的硬體和模式。模式選擇JTAG,硬體設置為USB_blaster,如果缺省沒有選擇,單擊Hardware Setup…,選擇。
JTAG模式編程
選定硬體設置類型
添加編程檔
注意編程的器件和檔是否已添加到圖 28中,沒有的話,手動添加。單擊Start開始編程。
沒有留言:
張貼留言