最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

2.12 VGA顯示圖片-明德?lián)P至簡設(shè)計法原理與應(yīng)用

2022-12-30 06:52 作者:明德?lián)P易老師  | 我要投稿

官網(wǎng)連載的內(nèi)容將出版成圖書,并將錄制視頻,免費(fèi)公開學(xué)習(xí),歡迎大家留意。本連載前面是基礎(chǔ)部分,與一般教材無異,后面是項(xiàng)目實(shí)踐,是本連載的特色。如果你有一定的基礎(chǔ)(能看懂verilog代碼即可),那么可跳過前面部分,直接學(xué)習(xí)后面的項(xiàng)目實(shí)踐。項(xiàng)目實(shí)踐將有16個,從基礎(chǔ)的閃爍燈開始,到最后是信號處理的項(xiàng)目,如信號發(fā)生器、FIR濾波器、插值濾波器和AD采集等。?

? 本連載學(xué)習(xí)效果
:不僅看能懂代碼,還能知道每一行代碼怎么寫,怎么設(shè)計。



第二階段? 項(xiàng)目實(shí)踐

第十二章? VGA顯示圖片


本文檔沒有對應(yīng)的視頻教程

3、這是Altera和Xilinx入門學(xué)習(xí)案例文檔

1 項(xiàng)目背景

1.1 FPGA存儲器

前大多數(shù)FPGA都有內(nèi)嵌的塊RAM(Block RAM),可以將其靈活地配置成單端口RAM(DPRAM,Single Port RAM)、雙端口RAM(DPRAM,Double Ports RAM)、偽雙端口RAM(Pseudo DPRAM)、CAM(Content Addressable Memory)、FIFO等常用存儲結(jié)構(gòu)。FPGA中其實(shí)并沒有專用的ROM硬件資源,實(shí)現(xiàn)ROM的思路是對RAM賦予初值,并保持該初值。
Altera的器件內(nèi)部提供了各種存儲器模塊(RAM、ROM或雙口RAM),可以在設(shè)計中使用MegaWizard Plug-In Manager,執(zhí)行【Tools】|【MegaWizard Plug-In Manager】菜單命令來創(chuàng)建所需要的存儲器模塊。也可以使用Altera 提供的宏功能模塊LPM_ROM來創(chuàng)建存儲器模塊。 每個ROM模塊有CLOCK(時鐘)、address(地址)這兩個輸入信號和一個q(值)輸出信號。 ROM在每個時鐘上升沿取出由地址信號所指定的存儲單元中的值并輸出。ROM內(nèi)的值通過加載MIF (Memory Initialization File,存儲器初始化文件)文件來實(shí)現(xiàn)。

當(dāng)在設(shè)計中使用了器件內(nèi)部的存儲器模塊時,需要對存儲器模塊進(jìn)行初始化。在Quartus Ⅱ中,可以使用兩種格式的存儲器初始化文件:Intel Hex格式(.hex)或Altera存儲器初始化格式(.mif)的文件。 MIF文件是Altera存儲器類器件初始化的專用文件格式,文件內(nèi)容為地址與值的對應(yīng)表,規(guī)定了存儲器單元的初始值。

如果將要存儲于ROM中的內(nèi)容比較少或者很有規(guī)律,可以執(zhí)行【File】|【New…】菜單命令,創(chuàng)建MIF文件并編輯其內(nèi)容。如果已經(jīng)有BMP格式的圖片,則可以使用我們提供的BmpToMif這個軟件,從現(xiàn)有的BMP格式圖片生成MIF文件。其使用非常簡單,注意要適當(dāng)調(diào)整原圖片的大小,這可以通過各種圖形編輯軟件修改,如Windows自帶的畫圖程序、Photoshop等。BmpToMif軟件的功能有:

① 將bmp圖片轉(zhuǎn)為mif文件:將黑白圖片轉(zhuǎn)換為單色mif文件;將彩色圖片轉(zhuǎn)換為三色mif文件。
② 將二進(jìn)制文件轉(zhuǎn)為mif文件,如將中英文點(diǎn)陣字庫轉(zhuǎn)換為mif文件。
?ROM IP核的生成方法[此處應(yīng)該加上ROM的介紹,以及MIF文件的介紹。]

1.2 圖片變成MIF文件的方法
? ?
1.我們需要用到Img2Lcd軟件,此軟件可自行下載,無需安裝即可使用。



2.打開軟件后,點(diǎn)擊右上角“打開”按鈕,選擇需要轉(zhuǎn)化的圖片,在右側(cè)輸出數(shù)據(jù)類型下選擇“c語言數(shù)組”,掃描模式為“水平掃描”,輸出灰度“256色”,最大寬度和高度應(yīng)大于圖片的大小,由于我們示例的圖片為120*60,最大寬度和高度我們選擇240*240。其他選項(xiàng)可以不用管。


圖 431

? ?
3.之后點(diǎn)擊“保存”,文件名為“1.c”,在點(diǎn)擊下方保存。



圖 432

4.用gvim打開生成的文件,箭頭處為數(shù)據(jù)個數(shù),由于圖片是120*60的,輸出灰度為256色,所以就有7200個數(shù)據(jù)。





圖 433


5.第一行是不需要的,先刪除掉,然后進(jìn)入命令模式,輸入“/,”,然后回車,就可以選中所有的逗號。





圖 434

? ?
6.將光標(biāo)置于第一個字符,在命令模式下一次輸入“q、a”,調(diào)用gvim的錄制功能,然后輸入“n”跳轉(zhuǎn)到第一個逗號,進(jìn)入編輯模式,將光標(biāo)置于第一個逗號的右側(cè),然后回車,接著摁4下退格鍵刪除多余的空格,在進(jìn)入命令模式,輸入“q”結(jié)束錄制。





圖 435

? ?
7.在命令模式下輸入“7198@a”,表示重復(fù)之前的錄制7198次,然后回車。





圖 436

? ?
8.然后我們要刪除多余的間隔,返回到第一個字符,在命令模式下輸入“qa”進(jìn)入錄制,然后向下移動16格,剛好到?jīng)]有數(shù)據(jù)的一行,輸入“dd”進(jìn)行刪除,然后“q”退出錄制。在命令模式下輸入“954@a”,即可完成刪除。





圖 437

? ?
9.刪除掉中間的OX





圖 438

? ?
10.在命令模式下輸入“:%s/0X/: /”回車將“0X”替換為冒號,輸入“:%s/,/; /”回車將“,”替換為“;”。





圖 439





圖 440

? ?
11.打開一個空白gvim,輸入1,進(jìn)入命令模式選中,輸入“yy7199p”將1復(fù)制7199份,將光標(biāo)至于第一個1處,進(jìn)入命令模式,輸入“:let i=1|g/1/s//=i/|let i=i+1”讓其遞增。





圖 441





圖 442

? ?
12.選中1~7199,然后Ctrl+Q,進(jìn)行列操作,然后Ctrl+c復(fù)制,然后回到1.c文件中,命令模式下,將光標(biāo)置于第二行最前,然后Ctrl+v粘貼。





圖 443

? ?
13.將第一個數(shù)據(jù)的地址標(biāo)為0,然后在最上方和結(jié)尾添加如下圖所示內(nèi)容。





圖 444





圖 445

? ?
?14.然后將“1.c”文件保存為“1.mif”格式的。



2 設(shè)計目標(biāo)
? ? 通過VGA連接線,將顯示器和教學(xué)板的VGA接口相連。連接示意圖如下。

圖 446


然后FPGA產(chǎn)生640*480分辨率(使用上表中的第一種分辨率),讓顯示器產(chǎn)生顯示一幅圖像。提示:顯示器一般都會自適應(yīng)功能,無須設(shè)置就能識別不同分辨率的圖像。

?圖像的內(nèi)容是:在屏幕的中央顯示一個明德?lián)P的LOGO。明德?lián)PLOGO的大小是120*60像素。除了圖片之外的顯示區(qū)域,則顯示白色。上板效果圖如下圖所示(顯示器不同,顯示效果也會有差別,請注意)。



圖 447? ? 本案例提供了ROM IP核文件:rom1.v。該文件的輸入輸出接口是:


? ? rom1是一個寬度為16位,深度為8192的ROM,該ROM保存了明德?lián)P的LOGO圖片,其排列方式如下。


該ROM按從左往右,由上往下的順序保存了LOGO圖像每個像素的值。圖中的(y,x)表示的是第y行第x列的像素值。例如,地址0保存的是第1行第1列的像素值,地址1保存的是第1行第2列的像素值,地址119保存的是第1行第120列的像素值。接下來,地址120保存的是第2行第1列的像素值,以此類推,地址6599保存的是第55行120列的像素值。而大于6599的地址,保存的值是0,沒有意義的數(shù)字。
? ?
ROM的每一個像素,按RGB565的方式保存,也就是[15:11]表示紅基色,[10:5]表示綠基色,[4:0]表示藍(lán)基色。


3 設(shè)計實(shí)現(xiàn)


3.1 頂層接口
? ?
新建目錄:D:mdy_bookpicture_new_borad。在該目錄中,新建一個名為picture_new_borad.v的文件,并用GVIM打開,開始編寫代碼。
? ?
?我們要實(shí)現(xiàn)的功能,概括起來就是FPGA產(chǎn)生VGA時序,即控制VGA_R4~R0、VGA_G5~G0、VGA_B4~B0、VGA_HSYNC和VGA_VSYNC,讓顯示器顯示紅色。其中,VGA_HSYNC和VGA_VSYNC,F(xiàn)PGA可根據(jù)時序產(chǎn)生高低電平。而顏色數(shù)據(jù),由于是固定的紅色,F(xiàn)PGA也能自己產(chǎn)生,不需要外部輸入圖像的數(shù)據(jù)。那么我們的FPGA工程,可以定義輸出信號hys表示行同步,用輸出信號vys表示場同步,定義一個16位的信號lcd_rgb,其中l(wèi)cd_rgb[15:11]表示VGA_R4~0,、lcd_rgb[10:5]表示VGA_G5~0,、lcd_rgb[4:0]表示VGA_B4~0。
? ?
我們還需要時鐘信號和復(fù)位信號來進(jìn)行工程控制。
? ?
綜上所述,我們這個工程需要五個信號,時鐘clk,復(fù)位rst_n,場同步信號vys、行同步信號hys和RGB輸出信號lcd_rgb。

將module的名稱定義為picture_new_borad。并且我們已經(jīng)知道該模塊有五個信號:clk、rst_n、lcd_hs、lcd_vs和lcd_rgb。為此,代碼如下:

?其中clk、rst_n是輸入信號,lcd_hs、lcd_vs和lcd_rgb是輸出信號,其中clk、rst_n、lcd_hs、lcd_vs的值是0或者1,一根線即可,lcd_rgb為16位位寬的,根據(jù)這些信息,我們補(bǔ)充輸入輸出端口定義。代碼如下:

3.2 架構(gòu)設(shè)計
? ?
需要注意的是,輸入進(jìn)來的時鐘clk是50MHz,而從分辨率參數(shù)表可知道,行單位的基準(zhǔn)時鐘是25 MHz。為此我們需要根據(jù)50MHz來產(chǎn)生一個25 MHz的時鐘,然后再用于產(chǎn)生VGA時序。
? ?
為了得到這個25M時鐘,我們需要一個PLL。PLL可以認(rèn)為是FPGA內(nèi)的一個硬核,它的功能是根據(jù)輸入的時鐘,產(chǎn)生一個或多個倍頻和分頻后的輸出時鐘,同時可以調(diào)整這些輸出時鐘的相位、占空比等。
? ?
例如,輸入進(jìn)來是50M時鐘,如果我需要一個100M時鐘,那么從邏輯上、代碼上是不可能產(chǎn)生的,我們就必須用到PLL來產(chǎn)生了。
整個工程的結(jié)構(gòu)圖如下。




圖 448


? ?
PLL的生成方式過程,請看本案例的綜合工程和上板一節(jié)的內(nèi)容。

3.3 VGA驅(qū)動模塊設(shè)計

3.3.1 接口信號
? ?
在目錄:D:mdy_book picture_new_borad中,建立一個rectangle.v文件,并用GVIM打開,開始編寫代碼。
? ?
我們新建一個GVIM文件,并且將文件保存為vga_driver.v。
? ?
我們先分析功能。要控制顯示器,讓其產(chǎn)生紅色,也就是讓FPGA控制VGA_R0~4、VGA_G0~5、VGA_B0~4、VGA_VSYNC和VGA_HSYNC信號。那么VGA驅(qū)動模塊,可以定義輸出信號hys表示行同步,用輸出信號vys表示場同步,定義一個16位的信號lcd_rgb,其中l(wèi)cd_rgb[15:11]表示VGA_R4~0,、lcd_rgb[10:5]表示VGA_G5~0,、lcd_rgb[4:0]表示VGA_B4~0。
同時該模塊的工作時鐘為25M,同時需要一個復(fù)位信號。
? ?
綜上所述,我們這個模塊需要五個信號,25M時鐘clk,復(fù)位rst_n,場同步信號vys、行同步信號hys和RGB輸出信號lcd_rgb。
? ?
將module的名稱定義為vga_driver。并且我們已經(jīng)知道該模塊有五個信號:clk、rst_n、hys、vys和lcd_rgb。為此,代碼如下:


3.3.2 信號設(shè)計
? ? 我們先設(shè)計場同步信號hys,VGA時序中的場同步信號,其時序圖如下:




圖 449

? ?
hys就是一個周期性地高低變化的脈沖。我們使用的是下表中的第一種分辨率,也就是同步脈沖a的時間是96個時鐘周期,而顯示后沿b是48個時鐘周期,顯示時序c是640個時鐘周期,顯示前沿是16個時鐘周期,一共是800個時鐘周期。


時間信號填入圖中,更新后的時序圖如下:




圖 450

? ?
顯然,我們需要1個計數(shù)器來產(chǎn)生這個時序,我們將該計數(shù)器命名為h_cnt。由于hys是不停地產(chǎn)生的,那么h_cnt就是不停地計數(shù),每個時鐘都要計數(shù)器,所以認(rèn)為該計數(shù)器的加1條件為“1”,可寫成:assign add_h_cnt = 1。從上圖可知,該計數(shù)器的周期是800。綜上所述,該計數(shù)器的代碼如下:


?有了計數(shù)器h_cnt,那么hys信號就有了對齊的對象。從時序圖可以發(fā)現(xiàn), hys有兩個變化點(diǎn),一個是h_cnt數(shù)到96個時,由0變1;另一個是當(dāng)h_cnt數(shù)到800個時,由1變0。所以,場同步信號的代碼如下:

接下來設(shè)計vys信號。該信號的時序圖如下所示。




圖 451

? ?
vys就是一個周期性地高低變化的脈沖。我們使用的是表中的第一種分辨率,查詢表可知,同步脈沖a的時間是2行的時間,而顯示后沿b是33行,顯示時序c是480行,顯示前沿是10行,一共是525行。其中,一“行”結(jié)束,也就是h_cnt數(shù)完了。
?將時間信號填入圖中,更新后的時序圖如下:





圖 452

? ?
很顯然,我們還需要1個計數(shù)器來產(chǎn)生這個時序,我們將該計數(shù)器命名為v_cnt。該計數(shù)器是用來數(shù)有多少行的,所以加1條件就是一行結(jié)束,即end_h_cnt,可寫成:assign add_v_cnt = end_h_cnt。從上圖可知,該計數(shù)器的周期是525。綜上所述,該計數(shù)器的代碼如下:


有了計數(shù)器v_cnt,那么vys信號就有了對齊的對象。從時序圖可以發(fā)現(xiàn), vys有兩個變化點(diǎn),一個是v_cnt數(shù)到2個時,由0變1;另一個是當(dāng)h_cnt數(shù)到525個時,由1變0。所以,場同步信號的代碼如下:

最后我們還有信號需要設(shè)計,那就是lcd_rgb信號。




圖 453

? ?
我們在顯示器中一共要分成兩種方式顯示。如上圖中,以屏幕中點(diǎn)為中心,左右60列、上27個行、下28行顯示的是圖像數(shù)據(jù);而在其他區(qū)域直接顯示白色,也就是lcd_rgb等于16’b11111_111111_11111。還要注意的是,在非顯示區(qū)域,lcd_rgb的值要為0,才能正確顯示。我們現(xiàn)在要仔細(xì)區(qū)分,在什么時候分別輸出上面的值。
? ?
顯示區(qū)域:(h_cnt >=(96+48)&& h_cnt <(96+48+640)),并且(v_cnt>=(2+33) && v_cnt<(2+33+480))
? ?
圖片區(qū)域:(h_cnt >=(96+48+320-60)&& h_cnt <(96+48+320+60)),并且(v_cnt>=(2+33+240-27) && v_cnt<(2+33+240+28))
? ?
白色區(qū)域:在顯示區(qū)域中,非圖片區(qū)域的,就是白色區(qū)域。
? ?
非顯示區(qū)域:顯示區(qū)域之外的,就是非顯示區(qū)域。
我們可以設(shè)計幾個信號來表示這些區(qū)域。顯示區(qū)域用valid_area=1表示,圖片區(qū)域用rom_area=1表示??傻玫酱a如下:


有了green_area和valid_area后,設(shè)計lcd_rgb就好辦了。
? ?
非顯示區(qū)域(valid_area=0),lcd_rgb輸出“16’b0”;
? ?
顯示區(qū)域(valid_area)中的圖片區(qū)域(rom_area=1),lcd_rgb輸出為圖片的像素值。但問題來了,圖片的像素值哪里來?來自于ROM,我們怎么使用ROM?將這個ROM例化,下面是例化的代碼。
? ?
代碼中,address、clock和q是rom1內(nèi)部的信號,而rom_addr、clk和rom_data是VGA驅(qū)動模塊的信號。上面的例化意思是,將rom1的信號address連到VGA驅(qū)動模塊的rom_addr信號上;將rom1的信號clock連到VGA驅(qū)動模塊的clk信號上;將rom1的信號q連到VGA驅(qū)動模塊的rom_data信號上。想象一下,現(xiàn)在要在一臺電視機(jī)內(nèi)部要安裝一個電路板。這個電路板的自己命名的接口有address、clock和q。這臺電視機(jī)里面有三種線,分別是rom_addr,clk和rom_data。我們把rom_addr插到電路板address接口上,把clk插到電路板的clock接口上,把rom_data插到電路板的q接口上,這樣就完成了安裝。
? ?
我們知道,通過控制ROM的地址,就能讓ROM輸出對應(yīng)地址的數(shù)據(jù)。ROM輸出的信號是rom_data。所以,顯示區(qū)域(valid_area)中的圖片區(qū)域(rom_area=1),lcd_rgb輸出為圖片的像素值,也就是rom_data的值,即lcd_rgb=rom_data。至于如何控制地址rom_addr,先不考慮,繼續(xù)完成lcd_rgb信號設(shè)計。
? ?
顯示區(qū)域(valid_area)中的非圖片區(qū)域(rom_area=0),lcd_rgb輸出白色16’h11111_111111_11111。
則可以寫出代碼如下:

最后我們再來設(shè)計rom_addr的信號。下面是

由上面的表可以得到rom_addr與h_cnt和v_cnt的關(guān)系:rom_addr = (h_cnt-96-48-320+60) + 120*(v_cnt-2-33-240+27)。
? ?
但我們要注意到ROM的時序,rom_data會比rom_addr滯后一個時鐘的。這會導(dǎo)致什么問題呢?




圖 454

? ?
當(dāng)h_cnt=404并且v_cnt=248時,此時是圖片的第一個像素點(diǎn)。由于rom_addr是由組合邏輯產(chǎn)生的,所以在第6個時鐘時rom_addr=0,而地址0所對應(yīng)的像素值,要在第7個時鐘才會在rom_data輸出。lcd_rgb是時序產(chǎn)生的,它在第7個時鐘上升沿,采樣rom_data的值并輸出,很顯示,此時lcd_rgb并不是輸出地址0所對應(yīng)的像素值。
? ?
遇到此種問題時,我們就需要調(diào)整時序。其中一種方法是是調(diào)整rom_addr,讓它提前一個時鐘產(chǎn)生,而其他信號都保持不變。更新后的波形如下圖。





圖 455

? ?
原來是在h_cnt=404時rom_addr的值為0,提前一個時鐘后,當(dāng)h_cnt=403時,rom_addr就為0,從而讓rom_data也提前了一個時鐘,正好解決此問題。
?所以rom_addr所對應(yīng)的代碼如下:


此次,主體程序已經(jīng)完成。接下來是將module補(bǔ)充完整。

3.3.3 信號定義
? ?
接下來定義信號類型。
? ?
h_cnt是用always產(chǎn)生的信號,因此類型為reg。h_cnt計數(shù)的最大值為800,需要用10根線表示,即位寬是10位。因此代碼如下:

add_h_cnt和end_h_cnt都是用assign方式設(shè)計的,因此類型為wire。并且其值是0或者1,1個線表示即可。因此代碼如下:


? ? v_cnt是用always產(chǎn)生的信號,因此類型為reg。v_cnt計數(shù)的最大值為525,需要用10根線表示,即位寬是10位。因此代碼如下:


? ? ?add_v_cnt和end_v_cnt都是用assign方式設(shè)計的,因此類型為wire。并且其值是0或者1,1根線表示即可。因此代碼如下:


? ? lcd_rgb是用always方式設(shè)計的,因此類型為reg。并且它的位寬是16位,16根線表示即可。因此代碼如下:


? ? hys和vys是用always方式設(shè)計的,因此類型為reg。并且其值是0或1,需要1根線表示即可。因此代碼如下:


?distance是用always方式設(shè)計的,因此類型為reg。其位寬為20位,需要20根線表示。因此代碼如下:




? ? valid_area和rom_area是用always方式設(shè)計的,因此類型為reg。并且其值是0或1,用一根線表示即可。因此代碼如下:


? ? rom_addr是用always方式設(shè)計的,因此類型為reg。其表示范圍是0~6599,需要位寬為13位,需要13根線表示。因此代碼如下:


? ? rom_data是例化模的輸出,不是用always方式設(shè)計的,因此類型為wire。其位寬為16位,需要16根線表示。因此代碼如下:


? ? 所以整個模塊的代碼如下

3.4 頂層模塊設(shè)計

3.4.1 例化子模塊
? ? 例化PLL IP核的代碼

?例化驅(qū)動模塊的代碼

3.4.2?信號定義

clk_0是在例化文件中,因此類型為wire。并且其值是0或1,用一根線表示即可。因此代碼如下:

?lcd_sh和lcd_vs是在例化文件中,因此類型為wire。并且其值是0或1,用一根線表示即可。因此代碼如下:

?lcd_rgb是在例化文件中,因此類型為wire。它的位寬是16位的,用16根線表示即可。因此代碼如下:


至此,整個代碼設(shè)計工作已經(jīng)完成。下一步是新建工程和上板查看現(xiàn)象。


4 綜合工程和上板

4.1 新建工程
? ?
1.首先在d盤中創(chuàng)建名為“picture_new_borad”的工程文件夾,將寫的代碼命名為“vga_drive.v”,頂層模塊名為“vga_drive”,例化文件命名為“vga_exec7.v”。圖片生成的數(shù)據(jù)文件名為“1.mif”,“vga_pll.v”為時鐘分頻ip核,由我們提供。



圖 466? ? 2.雙擊rom:1-port保存文件名,之后點(diǎn)擊ok。



圖 467? ? 3.在之后的界面中選擇數(shù)據(jù)位寬為16位,存儲深度為8192words,點(diǎn)擊Next。



圖 468? ? 4.在‘q’output port處取消對號選中,點(diǎn)擊Next。



圖 469? ? 5.然后選擇文件,點(diǎn)擊Browse,然后在出現(xiàn)的Select File中最下方的文件類型選擇.mif格式,然后選中我們之前寫的1.mif,點(diǎn)擊Open。



圖 470? ? 6.之后的界面中直接點(diǎn)擊Next。



圖 471? ? 7.取消rom1_bb.v處的箭頭勾選,點(diǎn)擊Finish。



圖 472? ? 8.然后直接點(diǎn)擊Yes



圖 473

4.4 綜合
? ?
1.在“Project Navigator”下選中要編譯的文件,點(diǎn)擊上方工具欄中“Start Compilation”編譯按鈕(藍(lán)色三角形)。



圖 474? ?

2.編譯成功后會出現(xiàn)以下界面。



圖 475

4.5 配置管腳



圖 476? ?

在菜單欄中,選中Assignments,然后選擇Pin Planner,就會彈出配置管腳的窗口。



圖 477? ?

在配置窗口最下方中的location一列,參考下表中最右兩列配置好FPGA管腳。

注意注意:與其他案例不同的是,VGA案例中所有管腳的電平必須選用為LVCMOS3.3,而不能是default。如下圖所示

??配置完成后,關(guān)閉Pin Planner,軟件自動會保存管腳配置信息。


4.6 再次綜合


圖 478

? ?
在菜單欄中,選中Processing,然后選擇Start Compilation,再次對整個工程進(jìn)行編譯和綜合。


圖 479

?出現(xiàn)上面的界面,就說明編譯綜合成功。

4.7 連接開發(fā)板
? ?
圖中,下載器接入電腦USB接口,電源接入電源,vga線連接顯示器,然后摁下電源開關(guān),看到開發(fā)板燈亮。

圖 480


4.8 上板
? ?
1.雙擊Tasks一欄中”Program Device”。




圖 481

? ?
2.會出現(xiàn)如下界面,點(diǎn)擊add file添加.sof文件, 在右側(cè)點(diǎn)擊“Start”,會在上方的“Progress”處顯示進(jìn)度。





圖 482

? ?
3.進(jìn)度條中提示成功后,即可在顯示器上觀察到相應(yīng)的現(xiàn)象。

























<span size:24px;"="" microsoft="" yahei",="" 微軟雅黑,="" stheiti,="" 華文細(xì)黑,="" sans-serif;"="">


2.12 VGA顯示圖片-明德?lián)P至簡設(shè)計法原理與應(yīng)用的評論 (共 條)

分享到微博請遵守國家法律
徐汇区| 印江| 天气| 湟中县| 天祝| 盘锦市| 云和县| 汾西县| 屏山县| 托克托县| 柘城县| 广州市| 江口县| 淳安县| 绵阳市| 密山市| 临高县| 巨野县| 嘉兴市| 虞城县| 贡山| 天门市| 元谋县| 镇原县| 大理市| 浪卡子县| 巫山县| 阳山县| 文水县| 乌海市| 阿坝| 丹寨县| 仁布县| 云龙县| 井冈山市| 泸州市| 湘潭县| 宜兰市| 苏州市| 溧阳市| 启东市|