FPGA最小系統(tǒng)之:實(shí)例2 在Xilinx的FPGA開發(fā)板上運(yùn)行第一個(gè)FPGA程序
然后在進(jìn)度瀏覽器的“Process View”對話框里面雙擊“View Generated Test Bench As HDL”圖標(biāo),就能看見ISE根據(jù)剛才設(shè)置的波形文件自動(dòng)生成的測試文件,如圖2.93所示。
圖2.93 生成的測試代碼
在進(jìn)度瀏覽器中雙擊【Generate Expected Simulation Result】,彈出兩個(gè)對話框,都選擇是(Y),將看見生成的預(yù)期輸出波形,如圖2.94所示。
圖2.94 預(yù)期仿真波形
在進(jìn)度瀏覽器中雙擊“Add Test Bench to Project”,將測試波形添加到工程里面。將會(huì)看到工程瀏覽器中test文件的圖標(biāo)由變成。
如圖2.95所示,在進(jìn)度瀏覽器中雙擊“Simulate Behavioral Model”將對工程進(jìn)行行為仿真,仿真結(jié)果如圖2.96所示。
圖2.95 運(yùn)行功能仿真
圖2.96 功能仿真結(jié)果
從圖中可以看出功能仿真結(jié)果符合設(shè)計(jì)要求,可以繼續(xù)進(jìn)行下面的設(shè)計(jì)。如果此處仿真發(fā)現(xiàn)設(shè)計(jì)功能不符合要求,則要對原代碼進(jìn)行修改,直到仿真結(jié)果符合設(shè)計(jì)要求為止。
4.約束設(shè)計(jì)
在源程序輸入完成以后,就可以設(shè)置約束,規(guī)劃布局布線了。
約束有很多種:時(shí)序約束(Timing Constrains)、管腳約束(Assign Package Pins)以及面積約束(Area Const- raints)等。
如圖2.97所示是ISE進(jìn)度瀏覽器中包含的用戶約束的選項(xiàng)。
圖2.97 設(shè)置約束
(1)時(shí)序約束。
時(shí)需約束主要約束設(shè)計(jì)的時(shí)序和時(shí)鐘頻率,雙擊圖2.97中的“Create Timing Constraints”圖標(biāo),ISE將打開約束編輯器,如圖2.98所示。
圖2.98 時(shí)序約束界面
在約束編輯器里面有4個(gè)復(fù)選頁,定義如表2.5所示。
表2.5 屬性定義
屬 性 | 定 義 |
Global | 用于附加全局約束,包括周期約束,輸入延遲約束和輸出延遲約束 |
Ports | 附加端口約束,可以對每一個(gè)端口進(jìn)行單獨(dú)設(shè)置,包括物理位置、輸入延遲和輸出延遲。同時(shí),也可以設(shè)置分組,進(jìn)行分組約束 |
Advanced | 附加分組約束(TNM/TNM_NET/TIMEGRP)和時(shí)序約束(FROM_TO/TIG O/OFFSET)等 |
Misc | 附加專用約束,包括電壓、初始值等 |
注意 | 附加約束的原則是先加全局約束后加分組約束。 |
在本實(shí)例中只做簡單的時(shí)鐘約束。在clk的period中輸入:20ns HIGH 50%,即設(shè)置時(shí)鐘的周期和占空比。設(shè)置后保存,完成時(shí)序約束。
(2)管腳約束。
管腳約束即約束工程設(shè)計(jì)源文件與選定器件對應(yīng)的輸入/輸出管腳屬性。雙擊圖2.97中的“Assign Package Pins”圖標(biāo),ISE將打開PACE工具,如圖2.99所示。
通過圖2.99的“Design Object List”對話框里面的Loc列,可以為設(shè)計(jì)添加輸入/輸出管腳,添加形式為“Pxxx”或者“pxxx”。其中P/p代表Pin,xxx是數(shù)值。
(3)面積約束。
面積約束目的在于規(guī)劃FPGA里面的邏輯使用大小。雙擊圖2.97中的“Create Area Constraints”圖標(biāo),ISE同樣打開PACE工具,面積約束和管腳約束用的是一個(gè)界面。在面積約束里面我們可以對設(shè)計(jì)使用的資源面積加以規(guī)劃,控制使用資源在FPGA里面的位置。
這里只使用到管腳約束,按照按鍵和LED燈與FPGA的連接,輸入管腳分配,然后保存分配。在保存選項(xiàng)中,選擇“XST Optional”,如圖2.100所示,關(guān)閉對話框,完成約束設(shè)計(jì)。
圖2.99 管腳約束工具PACE
圖2.100 保存管腳約束結(jié)果
評論