特點
以下主題透過 Lattice Diamond 2.0.1 版設計軟體進行解說。
- Lattice Diamond 設計流程工具基本概述
- 在頂層階層結構中實例化 VHDL 模組
- 使用 Diamond 的設計視圖產生階層結構
- 使用 Diamond 的設計視圖產生測試平台模板
- 使用自訂測試平台建立 Active-HDL 工程
- 在 Active-HDL 中檢視訊號並執行自訂測試平台
介紹
本教學將介紹如何使用 Lattice Diamond 2.0.1 版和 Active-HDL 語言,針對 Lattice LFE2-70E FPGA 進行基本的測試台建立和 Active-HDL 模擬。該測試平台將驅動組合進位超前加法器的激勵訊號,該加法器可在另一篇文章中找到更詳細的介紹。本教學提供了 VHDL 模組;使用者只需建立原理圖符號、頂層原理圖檔案和測試平台模板,即可在 Active HDL 中使用。
背景
Lattice ECP2 是一款中等密度(6 至 95K 個 LUT 和 90 至 583 個輸入/輸出)裝置,配備 sysDSP 和靈活的記憶體資源。它支援 3 至 42 個高效能 DSP 模組和 55Kbit 至 5308Kbit 的 sysMEM 嵌入式區塊 RAM。本教程是以模擬為基礎,僅使用軟體。
本教學所需軟體:
Lattice Diamond 設計軟體 2.0.1 版,以及第三方軟體 Synplify Pro for Lattice 和 Active-HDL Lattice Edition。
應用程式
建構電路
-
開發的第一步是啟動 Lattice Diamond 設計軟體,並使用新建專案精靈建立一個新專案。文件 → 創建 → 項目。輸入項目名稱(例如 Testbench_Tutorial)和路徑。
-
點選「下一步>」進入「新增來源檔案」視窗。點選「新增來源檔案」匯入在附錄提供的 VHDL 模組。新增 Top_Testbench_Tutorial.vhd、dflipflop_nbit.vhd 和 nbitsatadder.vhd,並勾選「將來源檔案複製到實作目錄」。
-
點選「下一步>」進入選擇裝置視窗。輸入以下資訊並點選「下一步>」。
• 產品系列:LatticeECP2
• 裝置:LFE2-70E
• 性能等級:5
• 封裝類型:FPBGA672
• 工作條件:商業級
• 裝置名稱:LFE2-70E-5F672C -
確保設定正確,然後點擊「完成 > 」。其他 Lattice FPGA 也可以按照相同的步驟操作;只是「選擇設備」視窗中的設定會有所不同。
-
在「檔案清單」視窗中,按兩下任何個的 .vhd 檔案即可開啟檢視。環境應該類似下圖 1。
圖 1:Diamond 設計環境
-
在檔案清單視窗中,右鍵點選輸入檔案資料夾上一層的活動實作資料夾,然後從彈出式選單中選擇「屬性」。
-
在「專案屬性」對話方塊中,確保項目已被反白顯示,並在「頂層單元」的值儲存格中選擇「Top_Testbench_Tutorial」。此文件可能需要手動輸入。如下圖 2 所示。
圖 2:項目屬性視窗
-
在上方工具列中,點選「生成階層結構」按鈕,或點選「設計」→「生成階層結構」。
-
此時,您應該會看到設計視圖,其中 VHDL 元件按階層結構排列。現在,點選「執行 BKM 檢查」或點選「設計」→「執行 BKM 檢查」。VHDL 模組現在應該顯示綠色,表示錯誤數為 (0) 和警告數為 (0) 如下圖 3 所示。
圖 3:生成階層結構的設計視圖
- 在設計視圖中右鍵點選 top_testbench_tutorial,然後選擇「VHDL 測試平台範本」。如下圖 4 所示。
圖 4:建立測試台模板
- 在檔案清單視窗的「輸入檔案」資料夾下將建立一個新檔案。這是測試台模板,包含運行模擬所需的大部分 VHDL 程式碼。該檔案可以從此路徑運行,也可以移動到來源資料夾。現在可以將測試台的名稱從「testbench.vhd」重新命名為類似「top_testbench_tutorial_tb.vhd」的名稱,如本例所示。測試台還需要自訂測試向量來驅動頂層設計輸入端口,以及一個進程來控制時脈。需要在「tb:PROCESS」進程中進行訊號分配。將會新增一個名為 「clock:PROCESS」的進程來控制時脈。在執行設計後,可以透過在 Lattice Diamond 工具列中開啟 Synplify Pro,然後點擊「RTL View」按鈕,在 Synplify Pro 中建立驅動架構的 RTL 原理圖(可選)。它將建立一個如下圖 5 所示的 RTL 原理圖。
圖 5:RTL 原理圖
- 在「PORT MAP(」上方的「BEGIN」語句之前插入以下內容:
• constant PERIOD : time := 20 ns;
在「tb:PROCESS」之前插入以下 VHDL 來控制時脈:
• clock : PROCESS
• BEGIN
•
• clk <= ‘1’;
• WAIT FOR PERIOD/2;
• clk <= ‘0’;
• WAIT FOR PERIOD/2;
•
• END PROCESS;
- 在 BEGIN 和等待語句之間的「tb:PROCESS」中輸入以下 VHDL 來驅動輸入埠:
• ready <= ‘0’;
• n_reset <= ‘0’;
• WAIT FOR 40 NS;
• n_reset <= ‘1’;
• WAIT FOR 40 NS;
• ready <= ‘1’;
• a_in <= “001100111111111111”;
• b_in <= “000010000000000001”;
• WAIT FOR 10 NS;
• a_in <= “101100111111111111”;
• b_in <= “100010000000000001”;
• WAIT FOR 10 NS;
• a_in <= “011100111111111111”;
• b_in <= “010010000110000001”;
• WAIT FOR 10 NS;
• a_in <= “101100000100001111”;
• b_in <= “100010000000000001”;
• WAIT FOR 10 NS;
• a_in <= “101111111111111111”;
• b_in <= “111110001111100001”;
• WAIT FOR 40 NS;
• a_in <= “111111000001111111”;
• b_in <= “111011111111100001”;
• WAIT FOR 40 NS;
• a_in <= “001111111111111111”;
• b_in <= “101001100011100001”;
• WAIT FOR 40 NS;
• a_in <= “001111110000110011”;
• b_in <= “001011111111100001”;
• WAIT FOR 40 NS;
• a_in <= “100000111111111111”;
• b_in <= “111101101111100001”;
• WAIT FOR 40 NS;
• a_in <= “000000000000001111”;
• b_in <= “011010000011100110”;
- 程式碼應按照下面的圖 6 和圖 7 所示輸入。
圖 6:修改後的測試台,新增了時脈流程
圖 7:新增測試向量的修改後的測試台
-
儲存設計,然後點選上方工具列中的「模擬精靈」,或點選「工具」→「模擬精靈」。
-
輸入項目名稱(如本例所示)「testbench」,然後瀏覽到正確的專案位置。點選 Active-HDL 的單選按鈕,然後點選「下一步」。
-
點選 RTL 的單選按鈕,然後點選「下一步」。
-
在「新增並重新排序來源檔案」視窗中,點選「下一步」。
-
在「剖析用於模擬的 HDL 檔案」視窗中,檢查「top_testbench_tutorial_tb」是否設定為「模擬頂層模組:」,然後點選「下一步」。
-
在「總結」視窗中,確保已選取「運行模擬器」,然後點擊「完成」。
-
Active-HDL 現在將會開啟;在「檔案」視窗中,展開「工作庫」,右鍵點選「top_testbench_tutorial_tb (behavior)」,然後選擇「初始化模擬」。這可以從下面的圖 8 看到。
圖 8:Active-HDL 模擬初始化
- 「結構」標籤將出現在頂部,現在可以將頂層連接埠新增至波形視窗。為此,請右鍵單擊每個訊號,然後從彈出式功能表中選擇「新增至波形」。如下圖 9 所示。
圖 9:將連接埠訊號加入波形
-
現在,可以透過點擊工具列中的「Run For」(運行時間)按鈕 (F5) 或在「Console」視窗中輸入「run」並指定時間(例如「run 100ns」)來執行測試台。
-
另一個有用的指令是「restart」,它會從測試台的開頭重新啟動模擬。測試台模擬的最終結果應類似於下面的圖 10。
圖 10:測試平台最終結果
可行、限制及改進
本教學使用 Lattice Diamond 2.0.1 版開發,並結合 Synopsis(Synplify Pro for Lattice)和 Aldec(Active-HDL Lattice Edition)等軟體支援。 Diamond 可作為獨立開發環境,與其他綜合和模擬軟體搭配使用。
總結
本教學示範如何使用 Lattice Diamond 設計軟體從範本建立自訂使用者測試平台的簡單方法。只需按照本教學概述的步驟操作,即可為任何設計建立自訂測試平台。
附加資訊
更多設計支援、產品教學、應用說明、使用者指南和其他文件可在 Lattice 網站上找到。
附錄:文件下載
LD_Testbench_Tutorial.doc (774 KB)
Top_Testbench_Tutorial.vhd (3.1 KB)
NbitSatAdder.vhd (3.0 KB)
NBitDFF.vhd (2.0 KB)
top_testbench_tutorial_tb.vhd (3.9 KB)









