歡迎您光臨本站 登入註冊首頁

概述

1 ISE軟體的運行及ModelSim的配置2 創建一個新工程3 創建一個VHDL源文件框架4 利用計數器模板嚮導生成設計*5 模擬6 創建……

1  ISE 軟體的運行及ModelSim 的配置

2  創建一個新工程

3  創建一個VHDL源文件框架

4  利用計數器模板嚮導生成設計

*5  模擬

6  創建Testbench波形源文件

7  設置輸入模擬波形

*8  調用ModelSim 進行模擬簡介

9  調用ModelSim 進行行為模擬(Simulate Behavioral Model)

10  轉換后模擬(Simulate Pose-Translate VHDL Model)

11  調用ModelSim 進行映射后模擬(Simulate Post-Map VHDL Model)

12  布局布線后的模擬( Simulate Post-Place&Route VHDL Model)

 


 

1. ISE 軟體的運行及ModelSim 的配置
    單擊“開始->程序->Xilinx ISE6->Project Navigator”,進入ISE 軟體。
    為了能夠使用ModelSim 進行模擬,選擇菜單Edit->Preferences…,選擇選項卡Partner Tools,出現界面如圖1 所示。單擊按鈕 找出ModelSim.exe 文件,單擊“確定”。需要注意的是這方面的設置與以前ISE 版本不同,在ISE4.2 中設置是這樣的。但在ISE5.1 以及ISE5.2 中是指定ModelSim.exe 文件所在的目錄,而ISE6.1 的設置與ISE4.2 的設置相同。單擊“確定”關閉該窗口,關閉ISE(這一步非常重要,否則可能不能在ISE 中調用ModelSim 進行模擬),再重新進入ISE 既可用調用ModelSim 對設計進行模擬了。
 
圖1 第三方工具設置窗口

2  創建一個新工程
Step1. 單擊“開始->程序->Xilinx ISE6->Project Navigator”,進入ISE 軟體。

Step2. 選擇File->New Project…,出現如圖2 所示的窗口。這個窗口與以前版本的差別較大,以前的版本出現的窗口中可以直接選取器件類型、封裝、門數、速度等級等信息。而在ISE6.1 中需要單擊“下一步”才能看到這些設置信息。在本例中,我們先選擇工程存放的路徑,然後輸入工程名稱。系統自動為每一個工程設定一個目錄,目錄名為工程名。再選擇頂層模塊類型為HDL。
 
圖2 新工程項對話框
(其他幾種類型說明如下:Schematic為原理圖輸入類型,類似於我們製作PCB 原理圖時的情況,可以從庫中選取器件,也可以用HDL 語言來生成器件,在後續章節會介紹原理圖為設計輸入的情況;EDIF為網表輸入類型,EDIF 是Electronic Data Interchange Format 的縮寫,是一種描述設計網表的標準的工業文件格式,可以由第三方工具生成,在ISE 中可以將其作為一種標準的輸入格式。NGC 文件是一種包含了邏輯設計數據和約束的網表,所謂約束是指FPGA 設計中的一些特定的要求,例如,我們分配設計中的信號到具體的管腳時,需要一個文件來指定如何分配,這就是一種約束文件,由於NGC 網表包含了設計和約束,因此一個文件足夠描述一個設計了。NGC/NGO 和EDIF 都可以在ISE 外由其他綜合工具生成也可由ISE 生成。如果我們需要用ISE 作為設計輸入,需要選擇Schematic 或HDL 作為頂層模塊類型;如果已經完成的設計文件為ABEL、Verilog或VHDL,應選擇HDL 為頂層模塊類型;如果已經完成的設計文件為原理圖,這裡應該選擇Schematic 作為頂層模塊類型。)

Step3. 單擊“下一步”,出現如圖3 所示的窗口,在該窗口中來選擇設計實現時所用的器件。在包含FPGA 的PCB 板子做出來以前,我們選擇不同類型的FPGA 進行測試,看看FPGA 的資源是否夠用,在PCB 板子做出來以後,我們在這裡的選擇與PCB板上的FPGA 必須一致。否則生成的下載文件無法配置到FPGA 中。此處若選擇錯了,也沒有關係,因為後面可以隨時修改這些設置。其中DeviceFamily 表示目標器件的類型;Device 表示目標器件的具體型號;Package 表示器件的封裝;SpeedGrade 表示器件的速度等級。這裡我們選擇器件為Spartan2E,xc2s100,tq144,-6。其中xc2s100中的100 表示器件為10 萬門,tq144 表示器件有144 個管腳。
  
圖3 設置工程所用的器件參數

Step4. 因為這裡我們重新編寫VHDL 源代碼,而不是使用以前設計好的源代碼,故再單擊“下一步”,“下一步”,單擊“完成”,工程創建完畢。

Step5. 這時的界面如圖4 所示,這裡需要關注的是界面左上角出現的小框為我們所有的源文件的管理窗口,在其下面的窗口為我們選擇不同的源文件時其所有可能操作的顯示窗口;右半部分窗口為我們設計輸入代碼的窗口;下面的窗口為編譯等信息的顯示窗口。這裡與以前版本不同的地方在於編譯輸入窗口這裡將Warnings 和Errors 可以分開顯示。我們可以在輸入不同文件后選中不同的文件,看看進程窗口中的變化。這樣,我們新建了一個工程,下一步就要在工程中輸入一些設計文件來實現我們的設計。
 
圖4 創建新工程后的ISE 界面

3  創建一個VHDL源文件框架
    在本小節我們向剛剛創建的工程中添加設計文件來實現要求的功能。按照以下步驟建立一個計數器的VHDL 文件描述。注意這裡僅僅新建一個有框架的文件,下一小節將向該文件中添加具體代碼。

    在這裡我們以一個具有複位(reset)、使能(ce)、置數(load)、計數方向控制(dir)功能的計數器為基礎進行設計。其方塊圖如圖5 所示。其中CLK 為輸入計數時鐘信號,系統在該信號的驅動下開始工作;RESET 為複位信號,在上升沿處,輸入複位為全零;CE 為使能信號,為1 時計數正常進行,為0 時停止計數;LOAD 為置數信號,當在時鐘上升沿該信號為1 時,將DIN0~DIN3 分別置給COUT0~COUT3。DIR 為計數方向控制,為1 時遞增計數,為0 時遞減計數。這些功能描述只是我們的設計目標,或稱為設計需求,我們在設計一個系統時,第一步就是要明確我們的設計要求。
 
圖5 計數器方塊圖

Step1. 選擇Project->New Source;(或在Sources in Project 窗口中單擊滑鼠右鍵選擇“New Source…”)出現如圖6 所示的窗口;
 
圖6 源程序的類型選擇

Step2. 選擇VHDL Module(VHDL 模塊)作為新建源文件的類型;

Step3. 在文件名中鍵入“FourBitsCounter”;

Step4. 單擊“下一步”;

Step5. 單擊“下一步”;

Step6. 單擊“完成”,完成這個新源程序的創建。新源程序文件FourBitsCounter.vhd 將會顯示在HDL 編輯窗口中,它包括Library,Use,Entity,Architecture 等語句。

4  利用計數器模板嚮導生成設計
   
設計文件建立之後,我們就可以向其中填寫代碼了。我們可以直接書寫HDL 代碼,也可以利用ISE 的語言模板(ISE Language Template)工具來輔助我們書寫HDL 代碼。在這裡我們使用語言模板,選擇其中的計數器描述來完成本源程序的設計。

Step1. 選擇Edit->Language Templates 打開語言模板,或者通過單擊按鈕 來打開語言模板,如圖7 所示;
  
圖7 計數器語言模板

Step2. 在Language Templates 中通過單擊“+”來展開VHDL 下的綜合模板(Synthesis Templates);

Step3. 從VHDL 綜合模板中選擇計數器模板(Counter Template),並把它粘貼到源程序counter.vhd 的begin 和end 之間。(或在Counter Template 上單擊右鍵選擇“Use incounter.vhd”,建議直接複製過去);

Step4. 關閉Language Templates 窗口;

Step5. 將帶有註釋符號“--”的計數器埠定義語句剪切並粘貼到計數器的實體(entity)描述中。這些語句如下所列:
-- CLK: in STD_LOGIC;
-- RESET: in STD_LOGIC;
-- CE, LOAD, DIR: in STD_LOGIC;
-- DIN: in STD_LOGIC_VECTOR(3 downto 0);
-- COUNT: inout STD_LOGIC_VECTOR(3 downto 0);

Step6. 去掉上述語句中的註釋符號;

Step7. 去掉上述最後一個埠定義語句后的分號;此時的程序如圖8 所示。

Step8. 選擇File->Save,保存counter.vhd 源程序。
 
圖8 修改後的計數器描述文件

[admin via 研發互助社區 ] VHDL上機手冊(基於Xilinx ISE & ModelSim)已經有4194次圍觀

http://cocdig.com/docs/show-post-43061.html