国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

VHDL上機手冊

發布時間:2010-9-26 14:27    發布者:eetech
關鍵詞: VHDL , Xilinx , 上機 , 手冊
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 修改后的計數器描述文件  

5 仿真

我們可以通過設置計數器模塊的輸 入來觀察仿真輸出,以測試我們編寫的VHDL 源文件是否滿足邏輯功能要求。我們建立的testbench 波形將被用于與仿真軟件ModelSim 的連接,用來驗證所設計的計數器的功能和延時是否達到要求。

6 創建Testbench波形源文件

在仿真前,首先創建一個Testbench 波形源文件,與以前版本不同的是,該文件不是在HDL Bencher(ISE 集成的一個工具,用于設置輸入波形)中打開,而是在ISE 中打開,這也是ISE6.1 不同于以前版本的地方。具體步驟如下:

Step1. 打開上一節所建立的工程;

Step2. 選擇Project->New Source…,(或通過在Sources in Project 中單擊右鍵選擇“NewSource…”),出現如圖9 所示的窗口;



圖9 創建波形源文件

Step3. 選擇文件類型為Test Bench Waveform;

Step4. 鍵入文件名“TestWave”,如圖9 中所示;

Step5. 單擊“下一步”,在本步驟中可以將波形文件與VHDL 文件進行關聯。

Step6. 單擊“下一步”;

Step7. 單擊“完成”;

Step8. 此時,HDL Bencher 程序自動啟動,如圖10 所示,我們可以選擇哪一個信號是時鐘信號并可以輸入所需的時序需求;在這里我們采用系統的默認值,單擊“OK”按鈕;



圖10 仿真時間參數的設置

Step9. 這時出現了如圖11 所示的波形;



圖11 新建的波形文件

7 設置輸入仿真波形

我們可以打開剛剛建立的波形文件,來初始化輸入波形,步驟如下:

Step1. 單擊波形圖中的藍色方塊來設置波形電平的高低,并將仿真時間線(圖中的垂直的藍色線)拉到第10 個時鐘周期處,設置后的波形如圖12 所示;



圖12 HDL Bencher 中輸入波形的設置

Step2. 單擊圖12 中工具欄上的圖標 ,將波形文件保存。

Step3. 查看代碼覆蓋率統計,單擊圖12 中工具欄上的圖標 ,顯示出代碼覆蓋率統計,統計結果如圖13 所示。因為還沒有輸出,所有輸出的統計均為零。代碼覆蓋率是一種測試術語,它可以表示運行完當前仿真時,所運行的代碼占所有代碼的比例。其中的 Assign 為賦值情況代碼占所有代碼的比例,Toggle 為上升下降沿代碼占所有代碼的比例。因此,代碼覆蓋率越高越好。



圖13 代碼覆蓋率統計結果

8 調用ModelSim 進行仿真簡介

其實在上一節中產生預定輸出時,已經使用了ModelSim,只是我們在界面上看不出來而已。這一小節我們在ISE 中調用ModelSim 進行仿真,這里討論的仿真仍然是基于波形文件的,因此不涉及ModelSim 中過多的知識。在ModelSim 中可以進行的仿真有Simulate Behavioral Model(仿真行為模型)、Simulate Pose-Translate VHDL Model(轉換后仿真)、Simulate Post-Map VHDL Model(映射后仿真)以及Simulate Post-Place&RouteVHDL Model(布局布線后仿真)。其實, 轉換( Translate )、映射(Map)以及布局布線(Place&Route)是FPGA 及CPLD 設計實現時的不同階段。

要實現一個設計,首先要進行編譯或轉換(Translate),轉換是將HDL 描述轉換為RTL 描述,轉換后仿真可以認為是RTL 級仿真,而且僅僅是邏輯仿真,在仿真中不包含任何的器件、時延等信息,僅僅用于驗證設計轉換為RTL 級描述后是否滿足功能要求;下面就是綜合,在該階段,設計文件按照約束文件與Xilinx 的原型庫聯系起來,映射(Map)則是將當前設計映射到具體器件的特定邏輯單元以及特定的工藝,所謂特定的邏輯單元是FPGA 中的基本的邏輯塊,所謂工藝是FPGA 的制作工藝,因此,映射后仿真是將設計實現到具體器件具體邏輯單元具體工藝后進行的邏輯仿真,類似于我們制作PCB 時畫完原理圖后進行的仿真,此時的仿真已經考慮到了器件延時,由于沒有布線,因此,連線的長度等信息就不能知道了,故此時的仿真是僅僅考慮到邏輯單元延時的仿真,而沒有考慮到連線的電容電阻、長度等信息。在亞微米(0.35 微米)以上的工藝中,連線的延時可以不太重視,而在深亞微米工藝中,連線的影響就不可小看了,為了保證深亞微米設計的成功,需要在布局布線前對設計進行時序仿真,這時候修改錯誤對設計進度的影響要小很多。最后是布局布線后仿真 ,為進行這個仿真,首先要進行布局布線,類似于我們對PCB 的布線,之后要進行參數提取,提取出互連線的長度、電阻、電容等信息,然后就可以根據這些信息進行仿真了,這時候的仿真中包括了器件本身的延時和互連線的延時等等部分,這種仿真也最近似實際情況。

也許讀者會疑惑,有了映射后仿真為什么還需要轉換后仿真呢?這是因為許多EDA 工具只能認識RTL 描述,而人們習慣使用高級的HDL描述,這就需要轉換,如果轉換后的RTL 描述是錯誤的,那么后續的過程還有什么意義呢,故還是需要進行轉換后仿真的,盡管一般轉換階段不會發生什么錯誤。

9 調用ModelSim 進行行為仿真(Simulate Behavioral Model)

如上所述,行為仿真驗證所設計的模塊的功能。未涉及到設計實現中的時延等問題。具體步驟如下:

Step1. 在如圖14 所示的Sources in Project 窗口中,選中TestWave 文件;



圖14 Sources in Project 窗口

Step2. 在如圖7-15 所示的Processes for Source :”TestWave”窗口中,通過單擊“+”展開它;



圖15 Processes for Current Source 窗口

Step3. 雙擊Simulate Behavioral VHDL Model,ModelSim 會自動運行,仿真結果出現在ModelSim 的波形窗口(Wave Windows)中,如圖16 所示,從雙擊命令到所有窗口的出現都是在ISE 自動創建的仿真宏文件(.fdo)的控制下來完成了,用戶可以在工程存放的路徑下看到該文件counter_tbw.fdo;用記事本打開該文件可以看到其內容。



圖16 ModelSim 行為仿真結果

Step4. 打開波形窗口,單擊按鈕 ,可以將所有波形在屏幕中顯示,仿真結果如圖16所示。可以看到,時鐘上升沿和計數值改變的時刻之間相差為零(圖中兩根豎線之間的間距為零)。

Step5. 關閉ModelSim 主窗口,確認退出ModelSim。

10 轉換后仿真(Simulate Pose-Translate VHDL Model)

如上所述,轉換后仿真是將設計轉換為RTL 級描述后進行的仿真。在其中不包含實現器件的信息。具體仿真步驟與行為仿真相同。只是在第三步,雙擊Simulate Pose-Translate VHDLModel 就可以了。仿真波形圖如圖17所示。可以看到,時鐘上升沿和計數值改變的時刻之間相差為零(圖中兩根豎線之間的間距為零)。



圖17 ModelSim 轉換后仿真結果

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

映射后仿真是設計映射到具體工藝和器件后進行的仿真,在其中包含了器件本身的延時信息。具體仿真步驟與行為仿真相同。只是在第三步,雙擊Simulate Post-Map VHDL Model就可以了。仿真波形圖如圖18 所示。可以看到,時鐘上升沿和計數值改變的時刻之間相差6794ps(圖中兩根豎線之間的間距),說明了器件的延時為6794ps。



圖18 ModelSim 映射后仿真結果

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

布局布線后仿真利用了從布局布線中提取出的一些信息,其中包括了目標器件及互連線的時延、電阻、電容等信息。具體仿真步驟與行為仿真相同。只是在第三步,雙擊Simulate Post-Place&Route VHDL Model 就可以了。仿真波形圖如圖19 所示。可以看到,時鐘上升沿和計數值改變的時刻之間相差8296ps(圖中兩根豎線之間的間距),說明了器件的延時加上互連線延時為6794ps。



圖19 ModelSim 布局布線后仿真結果
本文地址:http://www.qingdxww.cn/thread-29391-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 你仿真過嗎?使用免費的MPLAB Mindi模擬仿真器降低設計風險
  • 更佳設計的解決方案——Microchip模擬開發生態系統
  • 利用模擬開發工具生態系統進行安全電路設計
  • 想要避免發生災難,就用MPLAB SiC電源仿真器!
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91高清国产视频 | 弄农村老妇呻吟 | 国产免费私人影院永久免费 | 黑人超长巨大xxxxxxx视频 | 欧美视频在线观看免费播放 | 欧美日韩免费看 | 亚洲欧美日韩精品高清 | 射进来h| 看片不卡| 高清不卡| 亚洲免费网址 | 亚洲国产成人久久 | 久草视频在线资源 | 日韩精品一区二区三区毛片 | 日本一区不卡在线观看 | 害羞草研究所 | 四虎最新永久在线精品免费 | 欧美成a高清在线观看www | 2021国产精品自拍 | 538在线视频| 手机看片欧美日韩 | 四虎aⅴ| 免费成人在线网站 | 国产一级特黄a大片免费 | 99re8这里有精品热视频免费 | 国产精品自在自线 | 很黄很色又爽很黄很色又爽 | 久久一区不卡中文字幕 | 羞羞视频在线 | 一区二区在线观看视频在线 | 国产一区二区三区免费看 | 西瓜视频在线观看免费 | 日日噜噜夜夜狠狠视频buoke | 欧美日韩国产免费一区二区三区 | 四虎精品影院 | 欧洲做视频在线观看 | 欧美午夜网 | 青草视频在线观看免费视频 | 色婷婷精品 | 四虎在线观看免费永久 | 亚洲人成依人成综合网 |