如果您想開始使用 Vivado Design Suite,那麼本指南將為您提供協助。或許您只是在尋找一種簡單的方法來開始使用 AMD 的可程式邏輯設備,甚至是一般的可程式邏輯設備。在這種情況下,本指南仍然可以為您提供幫助,但您必須接受 AMD 可程式邏輯裝置和 Vivado Design Suite 作為您的起始平台。本指南可以協助您在實際的可程式邏輯硬體(即真實的實體設備)上進行開發。這不僅是一種實用的學習方法,而且還為您開始編寫自己的應用程式奠定了必要的基礎。
您可以使用任何基於與 Vivado 相容的可程式邏輯裝置建置的開發板。目前,所有較新的 AMD 設備都可與 Vivado 搭配使用,其中包括 7 系列和 UltraScale 設備。對於那些剛接觸可程式邏輯的人來說,本指南中的範例選擇了 Digilent 的 Basys 3 板。
Digilent 的 Basys 3 是一款針對 FPGA 入門用戶的訓練板,它是圍繞 AMD 的 Artix-7 設備之一構建的。AMD 確實提供了其 Vivado Design Suite 的免費版本,稱為 WebPACK,如果您在其網站上註冊並向他們提供一些基本信息,他們還將為您提供免費的無到期許可證。
Digilent 的 Basys 3 是一款針對 FPGA 入門用戶的訓練板,它是圍繞 AMD (Xilinx) 的 Artix-7 設備之一構建的。AMD 確實提供了其 Vivado Design Suite 的免費版本,稱為 WebPACK,如果您在其網站上註冊並向他們提供一些基本信息,他們還將為您提供免費的無到期許可證。
開始之前
- 當然,您需要下載並安裝 Xilinx Vivado Design Suite。只要您的目標可程式邏輯裝置受免費 WebPACK 版本支持,它就足以完成本指南(使用 WebPACK 2015.4 版本建立它)。如果您需要安裝和設定免費授權的協助,Digilent 提供了有用的指南。
- 您還需要一個合適的開發板。如果您還沒有,您可以購買 Digilent Basys 3 開發板。
- Basys 3 包裝內沒有包含 USB 線,因此如果您手上沒有合適的備用線,您可以隨 Basys 3 購買一條(A 插入式對微型 B 插入式)。
- 如果您使用的開發板需要外部 JTAG 程式設計器或電源,那麼您當然也需要這些。Basys 3 已整合了這些東西,但如果您使用不同的硬件,請查看可用文件以取得說明。
- 您需要將 JTAG 編程器和/或開發板連接到計算機,打開電源並安裝任何必要的驅動程式。
簡單開始 – 基本邏輯和 I/O
從這裡開始您將會發現非常簡單,只需將三個引腳配置為輸入,將三個引腳配置為輸出,中間加上一些簡單的邏輯。對於 Basys 3 範例,電路板的前三個開關(SW0-SW2)將連接到輸入,前三個 LED(LD0-LD2)將連接到輸出。
建立新項目
啟動 Vivado 後,從啟動頁面點擊「建立新專案」圖示。或者,您可以選擇檔案 → 新建項目。
新專案精靈將啟動,按「下一步 」按鈕繼續。
輸入項目名稱並選擇項目位置。確保其中沒有空格。只使用字母、數字和底線也不失為一個好主意。如果有必要,只需在根驅動器中為 Xilinx Vivado 專案建立一個新目錄(例如 C:\Vivado)。您可能也總是希望選取「建立專案子目錄」複選框。這樣可以使每個項目的目錄井然有序,並有助於避免問題。按「下一步」按鈕繼續。
選擇「RTL 項目」選項,並勾選「此時不指定來源」複選框。如果您不選取該複選框,精靈將引導您完成一些額外的步驟,以選擇性地新增預先存在的項目,例如 VHDL 或 Verilog 原始檔、Vivado IP 區塊以及用於裝置引腳和時序配置的 .XDC 約束檔案。對於這個第一個項目,您稍後將添加必要的項目。按「下一步」按鈕繼續。
您需要篩選並選擇適合您專案的特定零件編號。您可以實際讀取晶片上的標記或參考主機板文件來找到其零件編號。對於 Basys 3 來說,它是主機板上的 Artix-7 晶片,顯示的過濾器將幫助您找到突出顯示的正確裝置。選擇正確的設備後,按「下一步」按鈕繼續。
點擊「完成」按鈕,Vivado 將按照指定繼續建立您的專案。
完成基本專案流程
Vivado 專案視窗包含大量訊息,並且顯示的資訊可能會根據您在執行專案步驟時目前開啟的設計部分而變更。按照本指南操作時請記住這一點,因為如果您沒有看到特定的子視窗或子視窗選項卡,則可能您不在設計的正確部分。
螢幕左側的「流程導航器」按自然時間順序從上到下排列了所有主要專案階段。您從流程的「專案管理器」部分開始,螢幕頂部流程導航器旁邊的標題反映了這一點。此標題和流程導航器中相應的突出顯示部分將告訴您已開啟設計的哪個階段。
專案管理器
項目設定
首先點選 Flow Navigator 的專案管理器階段下的「專案設定」。
這裡為專案流程的所有階段提供了許多設置,但現在只需從常規專案設定中的「目標語言」下拉選單中選擇「VHDL」,然後按「確定」按鈕。
新增來源
現在點選 Flow Navigator 的專案管理器階段下的「新增來源」。
選擇「新增或建立設計來源」選項,然後按「下一步」按鈕。
點擊「建立檔案」按鈕或點擊左上角的綠色「+」符號並選擇「建立檔案…」選項。
確保在「建立原始檔案」彈出視窗中選擇了顯示的選項,並且為了方便後續操作,在「檔案名稱」中輸入「Basic_Logic」。完成後點選「確定」按鈕。
通常,只要有效,您可以輸入任何您喜歡的「檔案名稱」,但請務必確保其中沒有空格!
按一下「完成」按鈕,Vivado 將調出「定義模組」視窗。
定義模組
您可以使用「定義模組」視窗自動為您編寫一些 VHDL 程式碼。可以透過點擊左上角的綠色「+」符號或點擊下一個空白行來新增其他「I/O 連接埠定義」。「實體名稱」和「架構名稱」將是程式碼中使用的對應 VHDL 標識符,每個「連接埠名稱」輸入的內容也將是對應的 VHDL 標識符。任何有效的 VHDL 識別碼都可以用於其中任何一個,但是為了後續操作方便,請輸入所示的資訊。確保每個都設定了正確的“方向”。完成後點選“確定”按鈕。
請注意,如果您考慮從頭開始編寫自己的程式碼,您只需點擊「取消」按鈕,Vivado 將在您的專案中建立一個完全空白的 VHDL 原始檔。如果您按一下「確定」按鈕而不定義任何「I/O 連接埠定義」,Vivado 仍將編寫基本的 VHDL 程式碼結構,但連接埠定義將為空並被註解掉,以便您稍後取消註解並填入。
還要注意,此處的連接埠名稱與用於範例的 Basys 3 板上的開關和 LED 的絲網參考指示器相符。這是為了方便那些一直使用 Basys 3 的人,但不應被視為初學者的要求;每個名字只是一個任意的標識符。
產生的 VHDL 原始檔將會新增到您的專案中的「設計來源」資料夾中,如圖所示。雙擊它,它將在新選項卡中打開供您查看/編輯。這裡所有的程式碼都是由前面的「定義模組」視窗產生的,對於這個例子,您只需要在「開始」和「完成」關鍵字之間手動輸入三行突出顯示的程式碼。
這三行是:
LD0 <= SW0;
LD1 <= SW1 and SW2;
LD2 <= SW1 or SW2;
本指南並非 VHDL 教程,上面的內容非常簡單,但是為了幫助需要了解預期行為的 VHDL 初學者:
- 第一行只是將「SW0」輸入直接分配給「LD0」輸出(緩衝區)。
- 第二行將輸入「SW1」和「SW2」的邏輯與指派給「LD1」輸出(與閘)。
- 第三行將輸入「SW1」和「SW2」的邏輯或指派給「LD2」輸出(或閘)。
正確輸入這些行後,從 Vivado 頂部下拉選單中選擇檔案 → 儲存檔案。
RTL 分析
開啟詳細設計
現在點選 Flow Navigator 的 RTL Analysis 階段下的「開啟詳細設計」。您也可能會看到顯示的資訊彈出窗口,如果是這樣,只需單擊「確定」按鈕即可。Vivado 將做一些工作,然後打開詳細設計。
請注意,現在「RTL 分析」階段在流程導航器中突出顯示,並且旁邊的標題已從「專案管理器」更改為「詳細設計」,以表明您已開啟該設計階段並且您看到的視窗與其相關。如果您在流程導覽器的「專案管理器」和「RTL 分析」階段之間來回單擊,您將看到標題和視窗相應地發生變化。
觀看線路圖
您可以單擊流程導航器中 RTL 分析階段下方的「線路圖」,打開一個選項卡,其中顯示先前編寫的 VHDL 的原理圖表示。
裝置引腳分配
開啟詳細設計後,現在可以進行實際的可程式邏輯裝置引腳分配。如果尚未選擇,請從頂部欄中的下拉式選單中選擇「I/O 規劃」視圖,然後確保您正在查看底部的「I/O 連接埠」標籤,然後按一下以展開並查看所有可用連接埠。
連接埠名稱和方向與先前輸入的 VHDL 代碼相符。您必須從每個下拉式選單中輸入或選擇一個「站點」,以便為其提供可程式邏輯裝置的有效實體引腳分配。您同樣需要為每個選定的引腳分配適當的「I/O 標準」來匹配您的主機板提供的 I/O 組電源軌。
對於那些關注 Basys 3 開發板的人來說,為了方便起見,每個連接埠顯示的引腳「站點」分配將與開發板上的網版印刷相匹配,並且所有「I/O 標準」選擇都應為「LVCMOS33」。
正確輸入所有內容後,從 Vivado 頂部下拉選單中選擇檔案 → 儲存約束。
約束文件創建
確保在「儲存約束」彈出視窗中選擇了顯示的選項,並且為了方便後續操作,在「檔案名稱」中輸入「Basic_Logic」。完成後點選「確定」按鈕。
通常,只要有效,您可以為「檔案名稱」輸入任何您喜歡的內容,而且它當然不需要像本例一樣與您的 VHDL 檔案名稱相匹配,但請務必確保其中沒有空格!
可以透過雙擊「來源」視窗的「來源」子標籤中的約束檔案來檢視和手動編輯約束檔案。打開它進行查看,但暫時不要對其進行編輯。
綜合與實施
現在點選 Flow Navigator 的合成階段下的「運行合成」。Vivado 需要一些時間才能完成。如果出現「合成完成」彈出窗口,請選擇「運行實施」選項並點擊「確定」按鈕。如果沒有,您可以在綜合完成後點擊流程導航器的實施階段下的「運行實施」。Vivado 仍需要一些時間才能完成。
程式設計和偵錯
產生位元流
如果出現「實施完成」彈出窗口,請選擇「產生位元流」選項並按一下「確定」按鈕。如果沒有,您可以在實作完成後按一下 Flow Navigator 的程式設計和偵錯階段下的「產生位元流」。
如果出現「位元流產生完成」彈出窗口,請選擇「開啟硬體管理器」選項,然後按一下「確定」按鈕。如果沒有,您可以在位元流產生完成後,請按一下 Flow Navigator 的程式和偵錯階段下的「開啟硬體管理器」。
開啟目標
現在點擊 Flow Navigator 的程式和偵錯階段下的「開啟目標」,然後從出現的選單中按一下「開啟新目標…」。您需要已將您的 JTAG 程式設計器和/或開發板連接到您的電腦、開啟其電源並安裝任何必要的驅動程式才能繼續。
開啟新硬體目標精靈將啟動,按「下一步」繼續。
如果尚未選擇,請從下拉式功能表中選擇「本機伺服器(目標在本機上)」,然後按「下一步」按鈕繼續。Vivado 將會花一點時間來尋找連接到本機的任何有效目標裝置。
如果一切順利,您將看到與您的特定硬體相符的內容。選擇您的特定 JTAG 硬體目標和可程式邏輯設備,然後按「下一步」。請注意,您可以選擇更改「JTAG 時脈頻率」,但最好從預設開始,稍後再進行必要的調整。
按「完成」,Vivado 將嘗試連接到您指定的硬體。
程式設備
現在按 Flow Navigator 的程式和偵錯階段下的「程式設備」,然後從出現的功能表中按一下您的特定裝置。
出現的「程式設備」彈出視窗應自動填入您產生的位元流檔案的檔案路徑。如果尚未選取「開啟起動結束檢查」複選框,請按一下它,然後按一下「程式」按鈕。Vivado 將會工作一段時間,但如果成功,當一切完成後,您的裝置應該已經被編程並準備好驗證其正確的行為。
對於那些跟隨 Basys 3 的用戶,請切換開關 SW0-SW2 並驗證前面描述的 LED LD0-LD2 的正確行為。