導航:首頁 > 源碼編譯 > 編譯選項網表模擬

編譯選項網表模擬

發布時間:2024-12-20 04:11:25

1. 請問寫好一個VHDL程序後,怎麼樣一步步到模擬

寫好後存檔

一 將設計項目設置成工程文件(PROJECT)
為了對輸入的設計項目進行各項處理,必須將設計文件,設置成Project。如果設計項目由多個設計文件組成,則應該將它們的主文件,即頂層文件設置成Project。如果要對其中某一底層文件進行單獨編譯、模擬和測試,也必須首先將其設置成Projcet。即需要對哪個設計項目進行編譯、模擬等操作時,就設定哪個項目為工程。
將設計項目(如h_adder.gdf)設定為工程文件,有兩個途徑:
1、執行菜單File  Project  Set Project to Current File,即將當前設計文件設置成Project。選擇此項後可以看到菜單上面的標題欄顯示出所設文件的路徑。(前一部分是目前編譯器所指向的工程文件名稱)。這點特別重要,此後的設計應該特別關注此路徑的指向是否正確!如果已經指向待編譯的文件,就不必再次設置為工程。
2、如果設計文件未打開,執行菜單File  Project  Name,然後在跳出的Project Name窗中找到文件夾及文件名,此時即選定此文件為本次設計的工程文件了。
步驟4:選擇目標器件並編譯
在對文件編譯前必須選定最後實現本設計項目的目標器件,執行菜單AssignDevice,彈出Device窗口。此窗口的Device Family是器件序列欄,應該首先在此攔中選定目標器件對應的序列名,如EPM7128S對應的是MAX7000S系列、EPF10K10對應的是FLEX10K、EP1K30對應的是ACEXlK系列等。為了選擇EPF10K10LC84-4器件,應將此欄下方標有Show only Fastest Speed Grades的勾消去,以便顯示出所有速度級別的器件。完成器件選擇後,按OK鍵。
啟動編譯器。首先選擇左上角菜單的MAX+plusII選項,在其下拉菜單中選擇編譯器項Compiler,此編譯器的功能包括網表文件提取、設計文件排錯、邏輯綜合、邏輯分配、適配(結構綜合)、時序模擬文件提取和編程下載文件裝配等。如圖5所示。
點擊Start,開始編譯!如果發現有錯,一般情況下,會告訴用戶錯誤的位置和情況,雙擊編譯信息(Messages -Compiler)窗錯誤信息條,會直接跳到錯誤位置,排除錯誤後再次編譯。
說明:錯誤位置是用元件左下部的淺色數字顯示的,該數字是用戶在Enter Symbol的時候自動順序編號的。

圖5 編譯窗口
圖5編譯窗各功能項目塊含義如下:
• Compiler Netlist Extractor :編譯器網表文件提取器,該功能塊將輸入的原理圖文件或HDL文本文件轉化成網表文件並檢查其中可能的錯誤。該模塊還負責連接頂層設計中的多層次設計文件;此外還包含一個內置的,用於接受外部標准網表文件的閱讀器。
• Database Builder :基本編譯文件建立器,該功能塊將含有任何層次的設計網表文件轉化成一個單一層次的網表文件,以便進行邏輯綜合。
• Logic Synthesizer :邏輯綜合器,對設計項目進行邏輯化簡、邏輯優化和檢查邏輯錯誤。綜合後輸出的網表文件表達了設計項目中底層邏輯元件最基本的連接方式和邏輯關系。邏輯綜合器的工作方式和優化方案可以通過一些選項來實現。
• Partitioner :邏輯分割器,如果選定的目標器件邏輯資源過小,而設計項目較大,該分割器則自動將設計項目進行分割,使得它們能夠實現在多個選定的器件中。
• Fitter :適配器,適配器也稱結構綜合器或布線布局器。它將邏輯綜合所得的網表文件,即底層邏輯元件的基本連接關系,在選定的目標器件中具體實現。對於布線布局的策略和優化方式也可以通過設置一些選項來改變和實現。
• Timing SNF Extractor :時序模擬網表文件提取器,該功能塊從適配器輸出的文件中提取時序模擬網表文件,留待對設計項目進行模擬測試用。對於大的設計項目一般先進行功能模擬,方法是在Compiler窗口下選擇Processing項中的Functional SNF Extractor功能模擬網表文件提取器選項。
• Assembler :裝配器,該功能塊將適配器輸出的文件,根據不同的目標器件,不同的配置ROM產生多種格式的編程/配置文件,如用於CPLD或配置ROM用的POF編程文件(編程目標文件);用於對FPGA直接配置的SOF文件(SRAM目標文件);可用於單片機對FPGA配置的Hex文件,以及其它TTFs、Jam、JBC和JEDEC文件等。
步驟5:時序模擬
接下來應該測試設計項目的正確性,即邏輯模擬,簡單的說模擬就是人為模擬輸入信號,觀察輸出信號的變化,判斷是否合乎預計的設計要求。具體步驟如下:
1、建立波形文件。按照以上「步驟2」,為此設計建立一個波形測試文件。選擇File項及其New,再選擇圖1下側New窗中的Waveform Editer..項,打開波形編輯窗。如圖6所示。

圖6 波形編輯窗口
2、輸入信號節點。執行菜單Node → Enter Nodes from SNF。在彈出的窗口(圖7)中首先點擊List鍵,這時左窗口將列出該項設計所有信號節點。由於設計者有時只需要觀察其中部分信號的波形,因此要利用中間的「=>」鍵將需要觀察的信號選到右欄中,然後點擊OK鍵即可。波形編輯窗口變成圖8所示。

圖7 列出並選擇需要觀察的信號節點
3、設置波形參量。圖8所示的波形編輯窗中已經調入了半加器的所有節點信號,在為編輯窗的半加器輸入信號a和b設定必要的測試電平之前,首先設定相關的模擬參數。如圖8所示, 在Options選項中消去網格對齊Snap to Grid的選擇(消去勾),以便能夠任意設置輸入電平位置,或設置輸入時鍾信號的周期。這點切記

圖8 調入所有節點後的圖形編輯窗口
4、設定模擬時間寬度。執行菜單File→End Time選項,在End time選擇窗中選擇適當的模擬時間域,如可選3s(3微秒),以便有足夠長的觀察時間,但是不要設定時間太長,否則,模擬工作量大,佔用的機時太長。軟體默認模擬時間為1s。
5、設定輸入信號。現在可以為輸入信號a和b設定測試電平了。如圖9標出的那樣,利用必要的功能鍵為a和b加上適當的電平,以便模擬後能測試so和co輸出信號。如果需要對輸入信號a在某段時間間隔內賦值,在該信號的該段時間起點拖動滑鼠,移動到該段時間終點,使之變成黑色,然後點擊左側工具箱中的相應賦值按鍵。如果對信號從頭至尾(End Time)賦值,只需用滑鼠在左部的Name區點擊相應的位置,該信號會全部變黑,表示全選。

圖9 設定輸入信號的測試電平
賦值取反:就是對「黑色」時間段的信號取反碼,如:0→1、1→0、B9→46
6、波形文件存檔。執行菜單File →Save,按OK鍵即可。由於存檔窗中的波形文件名是默認的(這里是h_adder.scf),所以直接存檔即可。
7、運行模擬器。執行菜單MAX+plusII →Simulator選項,點擊跳出的模擬器窗口(圖10)中的Start鍵。圖11是模擬運算完成後的時序波形。如果沒有變化,看看是否因為顯示比例太大,點擊圖9的放大按鈕或顯示全部按鈕。

圖10 模擬器窗口

圖11 半加器模擬波形
上圖的Value欄的數值,代表豎線處(83.0ns)各個信號的電平。
8、觀察分析波形。很明顯,圖11顯示的半加器的時序波形是正確的。還可以進一步了解信號的延時情況。圖11的豎線是測試參考線,它上方(與Ref數據框處相同)標出的83.0ns是此線所在的位置;滑鼠箭頭(該線右側『+』處)所在處時間顯示在Time數據框里,為93.0ns;二者的時間差顯示在窗口上方的Interval小窗中。由圖可見輸入與輸出波形間有一個小的延時量10ns。
有時,為了觀察方便需要將某些信號作為一組來觀測。步驟:
①. 滑鼠在Name區選擇co使之全部變黑,按住ALT鍵,向下拖動滑鼠,復制一個co,或者全黑後,右鍵→Copy,在其它空白區域再右鍵→Paste;然後再復制一個so;或者菜單Node → Enter Nodes from SNF,再加上一個co和so。建議co在so的上面,且二者相鄰。
②. 將滑鼠移動到Name的co上(不要在帶紅線的「信號性質說明」上),按下滑鼠左鍵並向下拖動滑鼠至so,松開後滑鼠左鍵,可選中信號co、so
③. 在選中區域(黑色)上,點擊滑鼠右鍵,在浮動菜單上選擇Enter Group...或直接執行菜單Node → Enter Group...,出現如圖12所示的設置組對話框

圖12 設置組對話框
④. 選擇合適進制後,選擇OK,可得到如圖13所示的波形圖。

圖13 組顯示結果(10進制)
說明:在以後的模擬時,對於多位的數據,雙擊Value區,也可以改變數據的顯示格式,可以直觀顯示。步驟①不一定是必須的。但是Group的高位是所選數據的最上面的那個,低位是所選數據的最下面的那個。輸入數據也可以編組,有時在信號賦值時比較方便。
9、為了精確測量半加器輸入與輸出波形間的延時量,可打開時序分析器,方法是選擇左上角的MAX+plusII項及其中的Timing Analyzer選項,點擊跳出的分析器窗口(圖14)中的Start鍵,延時信息即刻顯示在圖表中。其中左排的列表是輸入信號,上排列出輸出信號,中間是對應的延時量,這個延時量是精確針對EPF10K10LC84-4器件的。

圖14 延時分析結果
10、包裝元件入庫。重新回到半加器設計文件h_adder.gdf,執行菜單File → Create Default Symbol項,此時即將當前文件變成了一個包裝好的單一元件h_adder.sym,並被放置在工程路徑指定的目錄(e:\MYNAME\shiyan_1)中,以備後用。

2. FPGA等可編程邏輯器件設計流程是怎麼樣的

通常可將FPGA/CPLD設計流程歸納為以下7個步驟,這與ASIC設計有相似之處。 1.設計輸入。Verilog或VHDL編寫代碼。 2.前模擬(功能模擬)。設計的電路必須在布局布線前驗證電路功能是否有效。(ASCI設計中,這一步驟稱為第一次Sign-off)PLD設計中,有時跳過這一步。 3.設計編譯(綜合)。設計輸入之後就有一個從高層次系統行為設計向門級邏輯電路設轉化翻譯過程,即把設計輸入的某種或某幾種數據格式(網表)轉化為軟體可識別的某種數據格式(網表)。 4.優化。對於上述綜合生成的網表,根據布爾方程功能等效的原則,用更小更快的綜合結果代替一些復雜的單元,並與指定的庫映射生成新的網表,這是減小電路規模的一條必由之路。 5.布局布線。 6.後模擬(時序模擬)需要利用在布局布線中獲得的精確參數再次驗證電路的時序。(ASCI設計中,這一步驟稱為第二次Sign—off)。 7.生產。布線和後模擬完成之後,就可以開始ASCI或PLD晶元的投產

閱讀全文

與編譯選項網表模擬相關的資料

熱點內容
蘋果手機簡訊加密的作用 瀏覽:260
ps3如龍系列全集解壓 瀏覽:740
萬維生活app怎麼添加家人的 瀏覽:110
密碼學加密機工程師 瀏覽:472
別克bcm編程 瀏覽:592
rar解壓看不了 瀏覽:164
怎麼在自己伺服器做視頻 瀏覽:144
php判斷變數長度 瀏覽:179
命令與征服4怎麼玩的 瀏覽:961
單片機幾個發展階段 瀏覽:71
程序員不好混怎麼辦 瀏覽:439
vrjava開發 瀏覽:270
二叉樹編程題 瀏覽:251
學投資app怎麼樣 瀏覽:874
程序員那麼可愛拍攝取景地 瀏覽:709
java堆內存大小 瀏覽:549
pe怎麼打開系統的伺服器地址 瀏覽:289
linux安裝軟體的方法 瀏覽:40
測繪可以學編程嗎 瀏覽:964
單片機紅外解碼原理 瀏覽:476