實(shí)驗(yàn)一:
LED實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/font>- 熟悉ISE8.2開發(fā)環(huán)境,掌握工程的生成方法;
- 熟悉SEED-XDTK_V4實(shí)驗(yàn)環(huán)境;
二、實(shí)驗(yàn)內(nèi)容- 創(chuàng)建工程;
- 添加HDL資源文件;
- 配置一個(gè)應(yīng)用程序完成設(shè)計(jì)。
三、實(shí)驗(yàn)準(zhǔn)備- 通過USB口下載電纜將計(jì)算機(jī)的USB口及SEED-FEM025板的J9 連接好;
- 啟動(dòng)計(jì)算機(jī),打開SEED-XDTK_V4實(shí)驗(yàn)箱電源開關(guān)。觀察SEED-FEM025板上的+5V(D11)的電源指示燈是否均亮。若有不亮的,請(qǐng)斷開電源,檢查電源。
四、實(shí)驗(yàn)步驟- 雙擊桌面Xilinx ISE8.2快捷方式打開ISE工程管理器(Project Navigator);
- 打開Project Navigator后,選擇File → New Project,彈出新建工程對(duì)話框;
- 在工程路徑中單擊“…”按鈕,將工程指定到如下目錄D: \02. V4_lab,單擊確定;
- 在工程名稱中輸入led,點(diǎn)擊Next按鈕,如圖1.1所示;
圖1.1
- 彈出器件特性對(duì)話框。器件族類型(Device Family)選擇“Virtex4”,器件型號(hào)(Device)選“XC4VSX25 FF668 -10”,綜合工具(Synthesis Tool)選“XST (VHDL/Verilog)”,仿真器(Simulator)選“ISE Simulator”,如圖1.2;
圖1.2
- 單擊Next按鈕,彈出創(chuàng)建新資源(Create New Soure)對(duì)話框,可以使用這個(gè)對(duì)話框來創(chuàng)建新的HDL資源文件,或者也可以創(chuàng)建工程后,新建HDL資源文件,如圖1.3;
圖1.3
- 單擊Next按鈕,彈出添加存在資源對(duì)話框;可以使用這個(gè)對(duì)話框來添加已經(jīng)存在的HDL資源文件,或者也可以創(chuàng)建工程后,添加HDL資源文件;在本實(shí)驗(yàn)中我們采用創(chuàng)建工程后,添加HDL資源文件的方式,如圖1.4;
圖1.4
- 單擊Next按鈕,將彈出工程建立完成對(duì)話框,單擊finish按鈕完成工程建立流程;
- 觀察工程資源管理窗口,將會(huì)看到工程已經(jīng)建立成功,如圖1.5。
圖1.5
- 選擇Project → Add Source命令,彈出的文件添加對(duì)話框;或者右鍵單擊Sources中的led彈出的文件添加對(duì)話框,如圖1.6;
圖1.6
- 在彈出的對(duì)話框中將文件添加路徑指向D:\02.V4_lab.2\led文件夾下,選擇led.v文件,單擊Open按鈕,如圖1.7;
圖1.7
- 在彈出的對(duì)話框框中單擊OK,如圖1.8;
圖1.8
圖1.9
- 在工程的資源操作窗(Processes),雙擊Implement Design; 如圖1.10
圖1.10
- 當(dāng)設(shè)計(jì)實(shí)現(xiàn)(Implement Design)運(yùn)行的過程中,展開設(shè)計(jì)實(shí)現(xiàn)命令(Implement Design),會(huì)看到實(shí)現(xiàn)過程中,首先是進(jìn)行綜合(Synthesis),然后才依次完成實(shí)現(xiàn)的步驟。
- 管腳約束實(shí)現(xiàn)與重新實(shí)現(xiàn)
- 工程的Sources窗口,右鍵單擊Sources中的led.v文件,彈出的文件添加對(duì)話框,如圖1.11;
圖1.11
- 添加led.ucf文件,順序與上述添加HDL資源文件相類似如圖1.12-1.14;
圖1.12 鼠標(biāo)左鍵單擊“打開(O)”
圖1.13 鼠標(biāo)左鍵單擊“OK”
圖1.14 鼠標(biāo)左鍵單擊“l(fā)ed左側(cè)+”
- 在Processes窗口,擴(kuò)展User Constraints并雙擊Assign Package Pins打開PACE,如圖1.15;注意在PACE能啟動(dòng)之前必須先進(jìn)行綜合。
圖1.15
- 在PACE中瀏覽Design Object List-I/O Pins窗口,可看到所列的信號(hào)名稱和信號(hào)方向是Output還是Input。在Loc欄里每個(gè)信號(hào)對(duì)應(yīng)的FPGA的管腳。信號(hào)連接如下,在FPGA的管腳分配需查看原理圖,如圖1.16;
CLK_IN: 管腳編號(hào)為AF12
LED_DATA[0]: 管腳編號(hào)為AD20
其余管腳在此就不一一列出了。
圖1.16
- 在所有信號(hào)鏈接完成后,然后選擇保存文件,如圖1.17箭頭所示位置;
圖1.17
- 在Device Architecture窗口放大直到可以看清每個(gè)管腳;如圖1.18;
注意:圖中粉紅色彩條說明管腳在同一個(gè)bank中。單擊每個(gè)藍(lán)色I(xiàn)/O管腳,則對(duì)應(yīng)著Design Object List-I/O Pins窗口相應(yīng)的管腳。
圖1.18
- 單擊菜單欄中的File → Exit,退出PACE;
- 單擊工程中Sources窗口中的led.ucf文件,然后雙擊Prosesses窗口中User Constraints目錄下的Edit Constraints (Text),就可以看到由PACE生成的led.ucf管腳約束文件;當(dāng)然我們也可以使用該命令,直接在文本中編寫led.ucf文件;
圖1.19
- 在工程的資源操作窗(Processes),雙擊Implement Design;對(duì)設(shè)計(jì)重新實(shí)現(xiàn);
- 本例程中led.ucf文件早已存在,我們可以使用上文介紹過的文件添加方式將led.ucf文件直接添加到工程文件中。
- 在工程的Sources窗口單擊頂層文件LED.v文件,展開Processes窗口中的Generate Programming File,雙擊Configure Device (iMPACT),如圖1.20;
圖1.20
- 彈出Welcome iMPACT對(duì)話框后,選擇“Configure devices using Boundary-Scan(JTAG)”,單擊Finish按鈕,如圖1.21;
圖1.21
- 在彈出的器件添加對(duì)話中,第一個(gè)器件選擇bypass按鈕,如圖1.22;第二個(gè)器件也選擇bypass按鈕,如圖1.23;
圖1.22
圖1.23
- 最后一個(gè)器件單擊所要下載的led.bit文件(此文件所在目錄不可有中文),單擊Open按鈕,如圖1.24;會(huì)彈出如圖1.25的“Add Virtex-/II Pro/Virtex04...”對(duì)話框,單擊OK按鈕后彈出一個(gè)警告信息,單擊OK按鈕;
圖1.24
圖1.25
- 單擊xc4vsx25這個(gè)device,變成綠色,且 iMPACT Processes Operations窗口出現(xiàn)可執(zhí)行的操作; 如圖1.26和1.27
圖1.26
圖1.27
- 在圖1.27中,雙擊iMPACT Processes Operations窗口中的Program,或者在圖1.26中,直接右鍵單擊xc4vsx25這個(gè)device,選擇Program。會(huì)彈出Programming Properties對(duì)話框,如圖1.28所示,單擊OK按鈕;
圖1.28
程序開始下載,如果下載程序成功則出現(xiàn)Program Succeeded,否則如果失敗則出現(xiàn)Program Failed,需要重新查找問題(嘗試重新下載或者斷電后重新下載程序);
- 程序下載成功后,可觀察到SEED-XDTK_MBOARD板卡上LED燈依次點(diǎn)亮。
五、實(shí)驗(yàn)程序led.v
六、思考題:- FPGA的中英文全稱各是什么?
- 實(shí)驗(yàn)箱所用FPGA型號(hào)是什么?共有多少個(gè)引腳?引腳可以分為哪幾類?
- 概述對(duì)FPGA進(jìn)行編程下載的流程。
- 實(shí)驗(yàn)程序中,輸入輸出引腳各有幾個(gè)??jī)蓚(gè)always塊語句各自的作用是什么?
實(shí)驗(yàn)二:LED點(diǎn)陣實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?/font>- 熟悉ISE8.2開發(fā)環(huán)境,掌握工程的生成方法;
- 熟悉SEED-XDTK_V4實(shí)驗(yàn)環(huán)境;
- 了解HDL語言在FPGA中的使用;
- 了解定時(shí)器的HDL實(shí)現(xiàn)。
二、實(shí)驗(yàn)內(nèi)容- 定時(shí)時(shí)鐘設(shè)計(jì);
- LED點(diǎn)陣點(diǎn)亮。
三、實(shí)驗(yàn)說明本實(shí)驗(yàn)的功能是將SEED-XDTK_MBOARD板上LED點(diǎn)陣點(diǎn)亮(合眾達(dá)圖標(biāo))。根據(jù)硬件原理,通過對(duì)FPGA的輸入時(shí)鐘進(jìn)行分頻,實(shí)現(xiàn)一個(gè)定時(shí)器,該定時(shí)器主要用于定時(shí)掃描控制SEED-XDTK_MBOARD板卡上的LED點(diǎn)陣。
SEED-XDTK_MBOARD板上LED點(diǎn)陣共有16*16點(diǎn),既有16根控制線與16根數(shù)據(jù)線。 控制線用來選中一組LED燈,16根數(shù)據(jù)線用來點(diǎn)亮相應(yīng)的LED燈。
四、實(shí)驗(yàn)準(zhǔn)備1. 通過USB 口下載電纜將計(jì)算機(jī)的USB 口及SEED-FEM025 板的J9 連接好;
2. 啟動(dòng)計(jì)算機(jī),打開SEED-XDTK_V4 實(shí)驗(yàn)箱電源開關(guān)。觀察SEED-FEM025 板上的+5V(D11)的電源指示燈是否均亮。若有不亮的,請(qǐng)斷開電源,檢查電源。
五、實(shí)驗(yàn)步驟注意:選擇器件(Device)為“XC4VSX25 FF668 -10”
其他步驟同實(shí)驗(yàn)一,請(qǐng)參考。
- 雙擊Configure Device (iMPACT)命令,打開iMPACT窗口;
- 彈出Welcome iMPACT對(duì)話框后,選擇“Configure devices using Boundary-Scan(JTAG)”,單擊Finish按鈕;
- 在彈出的器件添加對(duì)話中,第一個(gè)器件選擇bypass按鈕;第二個(gè)器件也選擇bypass按鈕;
最后一個(gè)器件單擊所要下載的dot.bit文件(此文件所在目錄不可有中文),單擊Open按鈕,彈出“Add Virtex-/II Pro/Virtex04...”對(duì)話框,單擊OK按鈕后彈出一個(gè)警告信息,單擊OK按鈕;
- 單擊xc4vsx25這個(gè)device,變成綠色,且 iMPACT Processes Operations窗口出現(xiàn)可執(zhí)行的操作;
- 雙擊iMPACT Processes Operations窗口中的Program,或者直接右鍵單擊xc4vsx25這個(gè)device,選擇Program。彈出Programming Properties對(duì)話框,單擊OK按鈕;
- 程序開始下載,如果下載程序成功則出現(xiàn)Program Succeeded,否則如果失敗則出現(xiàn)Program Failed,需要重新查找問題(嘗試重新下載或者斷電后重新下載程序);
- 程序下載成功后,觀察LED點(diǎn)陣點(diǎn)亮(合眾達(dá)圖標(biāo))。
六、實(shí)驗(yàn)程序 dot.v//dot.v:程序頂層文件,對(duì)輸入時(shí)鐘進(jìn)行分頻,依次點(diǎn)亮相應(yīng)的LED;
//dot.ucf:FPGA用戶約束文件。
`timescale 1ns / 1ps
// Company:
// Engineer:
//
// Create Date:
// Design Name:
// Module Name: dot
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
module dot(CLK_IN, nRST, CPLD_E,DOT_DATA , DOT_CON ,AD_nCS , DA_nCS ,USB_nCS,LCD_nCS );
input CLK_IN;
input nRST;
output [1:0] CPLD_E;
output [15:0] DOT_DATA;
output [15:0]DOT_CON;
output USB_nCS;
output AD_nCS;
output DA_nCS;
output LCD_nCS;
reg CLK_OUT = 1'b1;
reg [15:0]DOT_CON =16'h0000;
reg [15:0]DOT_DATA =16'h0000;
reg [13:0] DIV_counter = 14'h000;
reg [3:0] cnt= 4'h0;
parameter DIV_FACTOR = 14'h3f98;
//CPLD功能切換
assign CPLD_E = 2'b11;
//其他芯片功能禁止
assign USB_nCS = 1'b1;
assign AD_nCS = 1'b1;
assign DA_nCS = 1'b1;
assign LCD_nCS = 1'b1;
//時(shí)鐘分頻
always@(posedge CLK_IN)
begin
if(!nRST)
begin
CLK_OUT <= 1'b1;
DIV_counter <= 10'h000;
end
else
begin
if(DIV_counter <= DIV_FACTOR )
begin
DIV_counter <= DIV_counter + 1;
end
else
begin
DIV_counter <= 12'h000;
CLK_OUT <= !CLK_OUT;
end
end
end
//點(diǎn)亮點(diǎn)陣
always@(posedge CLK_OUT)
begin
cnt = cnt+1;
if(cnt == 4'h0)
begin
DOT_CON <= 16'h8000;
DOT_DATA <= 16'hd800;
end
else if(cnt == 4'h1)
begin
DOT_CON <= 16'h4000;
DOT_DATA <= 16'h6c00;
end
else if(cnt == 4'h2)
begin
DOT_CON <= 16'h2000;
DOT_DATA <= 16'hb600;
end
else if(cnt == 4'h3)
begin
DOT_CON <= 16'h1000;
DOT_DATA <= 16'hdb00;
end
else if(cnt == 4'h4)
begin
DOT_CON <= 16'h0800;
DOT_DATA <= 16'h6d80;
end
else if(cnt == 4'h5)
begin
DOT_CON <= 16'h0400;
DOT_DATA <= 16'h2480;
end
else if(cnt == 4'h6)
begin
DOT_CON <= 16'h0200;
DOT_DATA <= 16'h1240;
end
else if(cnt == 4'h7)
begin
DOT_CON <= 16'h0100;
DOT_DATA <= 16'h0920;
end
else if(cnt == 4'h8)
begin
DOT_CON <= 16'h0080;
DOT_DATA <= 16'h0490;
end
else if(cnt == 4'h9)
begin
DOT_CON <= 16'h0040;
DOT_DATA <= 16'h0248;
end
else if(cnt == 4'ha)
begin
DOT_CON <= 16'h0020;
DOT_DATA <= 16'h0124;
end
else if(cnt == 4'hb)
begin
DOT_CON <= 16'h0010;
DOT_DATA <= 16'h0092;
end
else if(cnt == 4'hc)
begin
DOT_CON <= 16'h0008;
DOT_DATA <= 16'h0000;
end
else if(cnt == 4'hd)
begin
DOT_CON <= 16'h0004;
DOT_DATA <= 16'h0000;
end
else if(cnt == 4'he)
begin
DOT_CON <= 16'h0002;
DOT_DATA <= 16'h0000;
end
else if(cnt == 4'hf)
begin
DOT_CON <= 16'h0001;
DOT_DATA <= 16'h0000;
end
end
endmodule
七、思考題1、CLK_OUT是CLK_IN的幾分頻?
2、.UCF文件是做什么用的?
3、實(shí)驗(yàn)中的點(diǎn)陣LED是規(guī)格是什么?程序中用哪些引腳來控制LED?
實(shí)驗(yàn)三:LCD顯示實(shí)驗(yàn)(一)一、實(shí)驗(yàn)?zāi)康?/font>- 熟悉ISE8.2開發(fā)環(huán)境,掌握工程的生成方法;
- 熟悉SEED-XDTK_V4實(shí)驗(yàn)環(huán)境;
- 了解LCD的HDL實(shí)現(xiàn);
- 了解Memory模塊的使用。
二、實(shí)驗(yàn)內(nèi)容- FPGA的memory模塊的生成及例化;
- 系統(tǒng)時(shí)鐘設(shè)計(jì);
- LCD點(diǎn)亮。
三、實(shí)驗(yàn)例程1、LCD芯片介紹
LCD模塊采用是LCM122326圖形點(diǎn)陣?,該模塊是由2塊NJU6450芯片構(gòu)成,不帶字庫。其工作時(shí)序圖如下圖所示:
LCD模塊行列分配:
LCD初始化如下所示
2 例程包含文件
- main.v:程序頂層文件,實(shí)現(xiàn)LCD的初始化以及液晶顯示;
- v4_dcm.xaw:DCM的IP核,將外部輸入時(shí)鐘(50M)進(jìn)行10分頻;
- CLK_DIV.v:系統(tǒng)運(yùn)行時(shí)鐘分頻文件,將系統(tǒng)運(yùn)行時(shí)間進(jìn)行分頻,提供100K的模塊處理時(shí)鐘;
- LCD_DISPLAY.v:LCD初始化,以及數(shù)據(jù)顯示文件;
- LCD_WRITE.v:LCD寫操作函數(shù)文件;
- v2_lcd_ziku.xco:漢字字庫存儲(chǔ)文件;
- main.ucf:FPGA用戶約束文件。
- //main.v
- `timescale 1ns / 1ps
- module main(CLK, nPROCESSOR_RESET_Z, D, LCD_E, LCD_A0, LCD_R_nW, LCD_LED, LCD_nCS, CPLD_E, AD_nCS, DA_nCS, USB_nCS,);
- input CLK;//100M aj15
- input nPROCESSOR_RESET_Z;//ah5
- inout [7:0] D;
-
- output [1:0] LCD_E;
- output LCD_A0;
- output LCD_R_nW;
- output LCD_LED;
- output LCD_nCS;
- output [1:0] CPLD_E;
- output AD_nCS;
- output DA_nCS;
- output USB_nCS;
-
- wire CLK_LOCKED;
- wire [7:0] DATA_OUT;
- wire CLK_100K;
- parameter DIV_FACTOR = 100;
-
- //LCD功能始能
- assign LCD_nCS = 1'b0;
- //CPLD功能切換
- assign CPLD_E = 2'b11;
- //其他芯片功能禁止
- assign AD_nCS = 1'b1;
- assign DA_nCS = 1'b1;
- assign USB_nCS = 1'b1;
-
- //系統(tǒng)時(shí)間分頻
- //輸入 50M 輸出10M
- v4_dcm CLK_DIV_10M (
- .CLKIN_IN(CLK),
- .RST_IN(!nPROCESSOR_RESET_Z),
- .CLKDV_OUT(CLK_10M),
- .CLKIN_IBUFG_OUT(),
- .CLK0_OUT(),
- .LOCKED_OUT(CLK_LOCKED)
- );
- //模塊時(shí)間分頻
- //輸入 10M 輸出100K
- CLK_DIV CLK_DIV_100K (
- .CLK_IN(CLK_10M),
- .nRST(CLK_LOCKED),
- .CLK_OUT(CLK_100K)
- );
- defparam CLK_DIV_100K.DIV_FACTOR = DIV_FACTOR;
-
- /////////// LCD TEST ///////////////
- reg r_nw = 1'b1;
- reg [6:0] zimo_num = 7'h00;
- reg [6:0] mem_addr = 7'h00;
- reg lcd_en = 1'b0;
- reg [6:0] col_addr = 121;
- reg [1:0] page_addr = 2'b11;
- reg [4:0] disp_addr = 5'h00;
-
- wire [7:0] lcd_data;
- wire lcd_done;
- reg [16:0] tLCD_counter = 17'h00000;
-
- LCD_DISPLAY LCD (
- //輸入?yún)?shù)
- .CLK(CLK_100K),
- .R_nW(r_nw),
- .DISP_ADDR(disp_addr),
- .PAGE(page_addr),
- .COL_ADDR(col_addr),
- .DISP_DATA(lcd_data),
- //輸出參數(shù)
- .LCD_E(LCD_E),
- .LCD_A0(LCD_A0),
- .LCD_R_nW(LCD_R_nW),
- //輸入、出參數(shù)
- .LCD_DB(D),
- //輸出參數(shù)
- .LCD_LED(LCD_LED),
- .DATA_OUT(),
- .DONE(lcd_done)
- );
-
- v4_lcd_ziku ZIMO(
- .addr(mem_addr),
- .clk(CLK_100K),
- .dout(lcd_data),
- .en(lcd_en));
-
- always@(posedge CLK_100K)
- begin
- if(tLCD_counter == 17'h0c350)//0.5s
- begin
- disp_addr <= disp_addr - 1; //顯示地址
- tLCD_counter <= 17'h00000;
- end
- else
- begin
- tLCD_counter <= tLCD_counter + 1;
- end
-
- if(!lcd_done)
- begin
- r_nw <= 1'b0;
- lcd_en <= 1'b0;
- end
- else
- begin
-
- r_nw <= 1'b1;
- if(!r_nw)
- begin
- lcd_en <= 1'b1;
- mem_addr <= zimo_num;
- if(zimo_num == 95)
- zimo_num <= 0;
- else
- zimo_num <= zimo_num + 1;
-
- case(zimo_num)
- 0:
- begin
- col_addr <= 23;
- page_addr <= 2'b00;
- end
- 16:
- begin
- col_addr <= 23;
- page_addr <= 2'b01;
- end
- 32:
- begin
- col_addr <= 68;
- page_addr <= 2'b00;
- end
- 48:
- begin
- col_addr <= 68;
- page_addr <= 2'b01;
- end
- 64:
- begin
- col_addr <= 113;
- page_addr <= 2'b00;
- end
- 80:
- begin
- col_addr <= 113;
- page_addr <= 2'b01;
- end
- default: col_addr <= col_addr - 1;
- endcase
- end
- else
- begin
- lcd_en <= 1'b0;
- end
- end
- end
- endmodule
復(fù)制代碼
3 模塊劃分圖
4 Memory 模塊的建立及其例化
- 雙擊Processes窗口中的Creat New Source,彈出新資源向?qū)Т翱冢?/font>
- 在彈出新資源向?qū)Т翱,選擇IP (CoreGen & Architecture Wizard),在File name 欄里輸入v4_lcd_ziku;
- 單擊Next按鈕,彈出Select IP窗口,依次展開Memories & Storage Element和RAMs & ROMs目錄,選擇Sigle Port Block Memory V6.2;
- 單擊Next按鈕,顯示新建資源信息,單擊Finish按鈕;
- 彈出Sigle Port Block Memory窗口,在Port Configuration選項(xiàng)卡中選中Read Only;Memory Size選項(xiàng)卡中Width 填寫8。Depth填寫96;Write Mode 選項(xiàng)卡中選中Read After Write;單擊Next命令;
- 單擊Next按鈕,Primitive Selection選項(xiàng)卡中選中 Optimize For Area,Design Options選項(xiàng)卡中選中 Enable Pin,Output Register Options 選項(xiàng)卡中Additional Output Pins Stages 填寫 0,單擊next命令;
- 單擊Next按鈕,不選中Implementation Option選項(xiàng)卡;管腳極性選項(xiàng)卡中選擇上升沿有效或者高電平有效;
- 單擊Next按鈕,Simulation Mode Options選項(xiàng)卡中選中Disable Waring Messages;Initial Contents選項(xiàng)卡中 Global init Value 填寫 0,選中 Load Init File添加hezhongda.coe(路徑為D:\02.V4_lab\ lcd\coe);
- 單擊 Generate 命令,生成v4_lcd_ziku.xco文件;
10、Memory模塊的例化與DCM模塊例化方法一致,請(qǐng)參考鍵盤實(shí)驗(yàn)中關(guān)于該部分的內(nèi)容。下圖中,黑色部分為Memory模塊的例化語句。
四、實(shí)驗(yàn)準(zhǔn)備- 將光盤下03. Examples of Program\02. V4_lab文件夾拷貝到D:盤根目錄下;
- 通過USB口下載電纜將計(jì)算機(jī)USB口及SEED-FEM025板的J9 連接好;
- 啟動(dòng)計(jì)算機(jī),打開SEED-XDTK_V4實(shí)驗(yàn)箱電源開關(guān)。觀察SEED-FEM025板上的+5V(D11)的電源指示燈是否均亮。若有不亮的,請(qǐng)斷開電源,檢查電源。
五、實(shí)驗(yàn)步驟- 打開ISE8.2,裝載lcd.ise工程文件;
- 雙擊Configure Device (iMPACT)命令。彈出Welcome iMPACT對(duì)話框后,選擇“Configure devices using Boundary-Scan(JTAG)”,單擊Finish按鈕;
- 在彈出的器件添加對(duì)話中,第一個(gè)器件選擇bypass按鈕。最后一個(gè)器件單擊所要下載的載main.bit文件;
- 單擊xc4vsx25這個(gè)device,變成綠色,且 iMPACT Processes 窗口出現(xiàn)可執(zhí)行的操作;
- 雙擊iMPACT Processes 窗口中的Program,或者直接右鍵單擊xc4vsx25這個(gè)device,選擇Program。彈出Programming Properties對(duì)話框,單擊OK按鈕;
- 程序開始下載,如果下載程序成功則出現(xiàn)Program Succeeded,否則如果失敗則出現(xiàn)Program Failed,需要重新查找問題(嘗試重新下載或者斷電后重新下載程序);
- 文件下載成功后,觀察lcd顯示(“合眾達(dá)”刷屏顯示)。
六、思考題1、頂層文件main.v的功能是什么?輸入輸出信號(hào)各有幾個(gè)?
2、頂層文件main.v調(diào)用了幾個(gè)元件例化?各自的功能是什么?
3、頂層文件main.v還使用了哪些語句?其功能是什么?
實(shí)驗(yàn)三:LCD顯示實(shí)驗(yàn)(二)一、實(shí)驗(yàn)?zāi)康?/font>- 熟悉ISE8.2開發(fā)環(huán)境,掌握工程的生成方法;
- 熟悉SEED-XDTK_V4實(shí)驗(yàn)環(huán)境;
- 了解LCD漢字字模的設(shè)計(jì)方法;
- 掌握Memory模塊的使用。
二、實(shí)驗(yàn)內(nèi)容- FPGA的memory模塊的生成及例化;
- 點(diǎn)亮LCD,定點(diǎn)顯示學(xué)生姓名(最少2個(gè)漢字,最多14個(gè)漢字)。
三、實(shí)驗(yàn)步驟- 打開ISE8.2,新建lcd.ise工程文件;
- 輸入所需的.v文件,生成對(duì)應(yīng)的漢字字模CORE文件。設(shè)計(jì)實(shí)現(xiàn)整個(gè)工程。
- 雙擊Configure Device (iMPACT)命令。彈出Welcome iMPACT對(duì)話框后,選擇“Configure devices using Boundary-Scan(JTAG)”,單擊Finish按鈕;
- 在彈出的器件添加對(duì)話中,第一個(gè)器件選擇bypass按鈕。最后一個(gè)器件單擊所要下載的載main.bit文件;
- 單擊xc4vsx25這個(gè)device,變成綠色,且 iMPACT Processes 窗口出現(xiàn)可執(zhí)行的操作;
- 雙擊iMPACT Processes 窗口中的Program,或者直接右鍵單擊xc4vsx25這個(gè)device,選擇Program。彈出Programming Properties對(duì)話框,單擊OK按鈕;
- 程序開始下載,如果下載程序成功則出現(xiàn)Program Succeeded,否則如果失敗則出現(xiàn)Program Failed,需要重新查找問題(嘗試重新下載或者斷電后重新下載程序);
- 文件下載成功后,觀察lcd顯示(分組學(xué)生姓名定位顯示);
- 記錄實(shí)驗(yàn)現(xiàn)象,下課交報(bào)告。