本篇整理自Adam Taylor的設計教學博客。
在我寫的大多數博客里,都演示或解釋了FPGA/SoC的設計細節技術。但是這篇文章將有所不同,因為在這里我要提出另外一個問題。
你該如何開始做可編程邏輯設計的架構?
在我有一次同時在為三個FPGA項目設計架構(作為衛星開發的一部分)時,這個問題浮現在我的腦海中。當然,由于最終應用場景的原因,該架構受到了主承包商和航天局的多次審查。因此,我將盡可能詳細的畫出架構圖,以便讓我的設計團隊可以很輕松地從中進行工作。
盡可能詳細地畫出架構圖,在本子上就可以
可編程邏輯的架構設計可能非常復雜,因此好的架構通常要定義以下幾個元素:
1.模塊需要實現所需的功能,當然,這些模塊也可以包含層次結構。
2.每個模塊接收時鐘和時鐘使能,必須考慮如果信號跨越多個時鐘域時的跨時鐘域需求。
3.每個模塊收到的復位。就像時鐘一樣,必須考慮每個模塊的復位要求。
4.架構中每個模塊接口信號相互連接
高效的架構和實現應盡可能利用供應商的現有IP核。確定可以在整個體系結構中重用的模塊也是明智的,例如控制算法或通信總線。我的設計中有3個FPGA需要構建,因此識別可以通用的模塊將在開發和驗證過程中節省大量時間。
接口重用十分劃算,因為它是標準化模塊。使用標準接口(例如AXI,AXI Stream和APB)作為模塊接口,可以在多個設計中輕松復用。在我的這個項目中,可能不需要復用IP核,但在將來的開發中可能需要相同的功能。
在我的復雜接口(如ADC/DAC接口、AXI或存儲接口)架構圖中,我更喜歡使用一類接口類型,該類型包含所有較低級別的信號。然后可以在體系結構文檔中定義接口類和所有信號。這種方法有幾個優點:它使架構圖更簡單,并使修改(例如 信號添加或重命名)只需要在一個位置進行。
各種接口類型的定義
信號列表和時序圖
在創建架構時,我的傳統方法是從筆和紙開始,勾勒出主要的設計模塊和關鍵界面。完成此操作后,我將使用Visio將其電子圖形化,以使其添加在文檔中時看起來更加專業。
當然,此圖需要顯示塊之間的所有信號和信號類別。理想情況下,工程師應能夠拾取架構和架構文檔,并根據其角色開始開發或驗證。
在研究架構時,我對其他工程師如何開發可編程邏輯架構感到好奇,因此我在多個FPGA討論板/論壇上提出了問題并收到了很多有趣的回答。大多數受訪者表示他們使用了常見的圖紙設計套件,包括:
· Microsoft Visio (https://www.microsoft.com/en-gb/microsoft-365/visio/flowchart-software
· draw.io (https://app.diagrams.net/)
· yED (https://www.yworks.com/products/yed)
· Dia (http://dia-installer.de)
· OmniGraffle (https://www.omnigroup.com/omnigraffle)
· LibreOffice Draw (https://www.libreoffice.org/discover/draw/)
· Gliffy Diagrams for Confluence (https://marketplace.atlassian.com/apps/254/gliffy-diagrams-for-confluence)
· Lucidchart (https://www.lucidchart.com/)
· XMind (https://www.xmind.net/)
我們可以使用這里所有的繪圖包創建漂亮的架構圖,有趣的是,有幾個人回答說他們使用Symbolator,而我并不熟悉。
Symbolator是Windows和Linux中的命令行工具,它將讀取VHDL、Verilog和組件聲明然后生成組件圖。然后可以在您首選的圖紙包中使用這些symbol。
直接安裝Symbolator。我們可以使用pip進行安裝,并注意您安裝的時候可能需要安裝一些其他軟件,包括Pycairo,PyGObject和Python-gi-cairo。完成此操作后,您可以使用各種不同格式和表示樣式的組件聲明創建組件symbol。
自從我學習到有關Symbolator的知識以來,我感覺這工具還挺好用,于是決定將它用到我正在設計的三個架構工作中。
用Symbolator進行block設計
Symbolator的介紹地址:https://kevinpt.github.io/symbolator/
我非常喜歡使用清晰的時鐘和數據接口組定義來創建block。這一次,我使用Symbolator和Visio完成了架構設計,但對于各位架構師來說,每個人都有每個人的習慣。大家更習慣如何開展FPGA/SoC架構設計工作呢?
原文標題:你一般如何做可編程邏輯設計的架構?
文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603016 -
soc
+關注
關注
38文章
4163瀏覽量
218168 -
可編程邏輯
+關注
關注
7文章
515瀏覽量
44083
原文標題:你一般如何做可編程邏輯設計的架構?
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論