在進行第一個工程實例前,順便提一下設計工具相關資源的獲取。從特權同學接觸的幾家FPGA開發工具來看,Xilinx在這方面做得應該算是最人性化的了,其設計資源可謂唾手可得。如圖1所示,當我們開啟ISE軟件后,主窗口便會顯示這樣一個帶有介紹和引導鏈接的頁面。這里我們主要提一下它的Documentation。
Nexys3學習手記5:流水燈在線運行
圖1 ISE設計資源引導界面????????
點開Documentation,如圖2所示,其實是直接打開了Xilinx的一個客戶端小工具Documentation Navigator(簡稱DocNav)的下載頁面。這是一款不錯的Xilinx設計文檔在線瀏覽工具,非常推薦各位下載并安裝。
圖2 Documentation頁面????????
如圖3所示,打開DocNav軟件的首頁,可以看到各類開發相關的歸類文檔,這個小工具讓Xilinx的各類文檔一目了然,極大的方便了設計者對文檔資源的索取和閱讀。這么大的一個文檔資源庫,恐怕花個一年半載的都未必能夠通讀一遍,實際上壓根個也沒有這個必要。一般來說,建議設計者對這些文檔的基本用處有所了解即可,而在遇到一些設計小問題的時候腦子里能夠靈光一現,想起來大概哪個文檔里會有解決問題的辦法,而后再過來翻看也就足夠了。?圖3 D
ocNav首頁????????
再說每個軟件都有Help,ISE中點開菜單欄的HelpàHelp Topics…,便如圖4所示。記得特權同學大三那年一個被認為牛的不行的留過洋的微波課老師第一次和我們提Project,還讓我們用Matlab畫smith圓圖,那時對專業英文一知半解的我們才發現原來Help里面要啥有啥,真可謂大百科全書。所以捏,同學們都要好好利用Help這玩意,不懂就問,最簡單快捷的問法就是Search。
圖4 ISE Help頁面好了,那么下面我們要簡單的做個ISE工程的范例,寫個流水燈的小代碼下載到FPGA中看看效果。雙擊打開桌面的快捷方式“Xilinx ISE Design Suite 13.3”,點擊菜單欄的FileàNew Project…。出現如圖5所示的新工程設置界面,輸入工程名并定位好工程存儲文件夾位置,完成后點擊Next進入下一步。
圖5 工程名與存儲設置????????
器件與工程屬性設置如圖6所示。設置完畢再Next便Finish。
圖6 器件與工程屬性設置????????
此時我們看工具左側窗口,選中Design便如圖7所示。Hierarchy下只有工程名和相應器件顯示,可謂設計文件一片空白,咱要來此拓荒了。首先,我們需要添加源代碼文件到工程中。
圖7 Design窗口????????
在Hierarchy窗口的空白處右鍵點擊New Source…,如圖8所示。這里可以選擇新建各類源文件,包括IP核、基于處理器的系統、verilog或VHDL源文件以及測試腳本等等。我們需要新建一個verilog源代碼文件,所以選擇Verilog Module,給模塊命名,通常頂層代碼源文件名建議和工程名一致,免得后面一串麻煩事。
圖8 新建源文件???
新建的源代碼.v文件會自動添加到Hierarchy下,并且直接在主窗口中打開源文件如圖9所示。
圖9 源代碼文件???????
? 此時需要編寫一段流水燈測試代碼,如下所示:module test1led(??????????? clk,rst_n,??????????? led??????? );?input clk;????? //100MHzinput rst_n;??? //低電平復位信號?output[7:0] led;??? //分頻信號,連接到蜂鳴器?//---------------------------------------------------reg[2:0] cnt;?? //分頻計數器?always @ (posedge clk or negedge rst_n)//異步復位??? if(!rst_n) cnt <= 23'd0;??? else cnt <= cnt+1'b1;?? //寄存器cnt循環計數?//----------------------------------------------------reg[7:0] ledr;? //LED流水燈?always @ (posedge clk or negedge rst_n)??? if(!rst_n) ledr <= 8'd1;??? else if(cnt == 23'h7fffff) ledr <= {ledr[6:0],ledr[7]};//大約每80ms讓led左移一次?assign led = ledr;?endmodule???????? 接下來需要對管腳進行分配,如圖10所示,Hierarchy中需要先選中頂層代碼文件testled.v,然后雙擊Processes下的User ConstraintsàI/O Pin Planning(PlanAhead) – Post-synthesis(或者I/O Pin Planning(PlanAhead) – Pre-synthesis,兩者的區別在于在分配管腳時是否synthesis了,一般是無關緊要的)。
圖10 PlanAhead啟動????????
Xilinx的工具做得真是獨具匠心啊,打開PlanAhead后的歡迎界面不得不讓我們發出“設計文檔無處不在”的感慨。如果想深入了解PlanAhead工具,不妨好好拜讀下這里羅列的PlanAhead User Guide。
圖11 PlanAhead的歡迎界面????????
如圖12所示,參照原理圖NEXYS3_sch.pdf,在PlanAhead的I/O Ports中對該實例的管腳進行分配。其中rst_n使用了撥碼開關SW1,板級驗證的時候注意將SW1朝板子內側撥動即處于正常運行狀態。分配完成后保存設置即可退出PlanAhead。
圖12 管腳分配????????
回到ISE中,雙擊圖10的Processes下Generate Programming File進行編譯生成.bit下載文件。然后使用上節提到的Adept工具,在Config功能項中加載并燒錄工程文件夾下生成的test1led.bit文件。接著,我們就可以看到在線燒錄到FPGA器件中的代碼運行起來了,SW1撥碼開關處于內側時,8個流水燈跑的很歡。轉載自:特權同學的博客
- FPGA(591969)
- Xilinx(119164)
- Nexys3(3550)
相關推薦
GD32開發實戰指南(基礎篇) 第2章 初始GPIO流水燈
熟悉單片機的朋友都知道,學習的第一個例程就是流水燈,要想實現流水燈,首先必須了解GPIO的工作原理。GPIO的基本結構如下圖所示。
2023-05-08 09:03:43
6145


多變流水燈的控制原理圖
本裝置可以把流水燈狀態分作快流、漫流、整流、逆流,二燈流、三燈流。電路根據IC4的Q8、Q9、Q10輸出端得波形,流水燈按慢逆三、快逆三、慢正三、快正二、慢逆二、快逆二、慢正二
2011-10-11 11:46:29
11996


ARM Cortex-M學習筆記:初識GPIO流水燈
熟悉單片機的朋友都知道,學習的第一個例程就是流水燈,要想實現流水燈,首先必須了解GPIO的工作原理。GPIO的基本結構如圖1所示。
2023-05-15 11:31:49
2085


ARM Cortex-M學習筆記:GPIO流水燈的前世今生
上一章通過控制GPIO的高低電平實現了流水燈,但只是告訴了大家怎么做,如何實現流水燈,本文將深入剖析的GPIO流水燈的前生今世,深入研究流水燈的調用邏輯和數據結構。
2023-05-15 14:44:08
1829


Nexys3開發板迷你型B-USB接口→FX2→Spartan-6 下載FX2的固件程序問題
從圖中可知FX2固件程序是從JTAG口下的,但同時也連到了FPGA,如果此時通過JATG口下載FPGA程序,不是同時傳到FX2上了嗎,怎么識別?本人剛開始學硬件,求研究過Nexys3的大神指點。
2018-05-01 12:17:32
nexys3板的門程序執行期間警告該怎么處理?
你好,需要一些幫助我實際上是想在我的nexys3板上實現一個簡單的門程序(請找到附帶的VHDL文件)。但在實施階段有以下警告“參數:381 - 此架構不支持以下一個或多個開關-p和-r。 PAR將
2019-11-11 09:28:12
流水燈
求大神幫忙啊 51單片機原理:流水燈編程,編程要求包含:(1)1-8號LED每次亮一個,1-8不斷循環(2)用P0.P1口,共16個LED,1-16先奇數點亮再偶數點亮,然后全部點亮不斷循環(3)要求用仿真軟件檢測是否能運行。
2017-03-12 16:22:17
C51單片機學習筆記(二)——花樣流水燈的實現 精選資料分享
C51單片機學習筆記(二)——花樣流水燈的實現文章目錄C51單片機學習筆記(二)——花樣流水燈的實現1.單片機引腳、晶振、復位的作用2.流水燈原理圖3.單片機的周期4.延時函數的編寫5.使用“位操作
2021-07-15 09:52:11
評論