0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的高速電路設計中一種新型硬宏開發(fā)流程

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-06-10 08:04 ? 次閱讀

在現(xiàn)今應用FPGA進行芯片電路設計的領域,已經(jīng)使用HDL語言以及擁有強大功能的邏輯綜合工具來進行設計。同時,高速電路也越來越被普遍使用,這一趨勢使得芯片設計工程師把眼光越來越多的投向?qū)蠖瞬季植季€的控制,因為對于高速設計,精細的后端控制是保障電路可靠運行的重要條件。在實踐中,精細的后端控制也越來越顯出它的重要性,同時要求設計者投入到這個方面的時間也越來越多。

問題的提出

實際的應用中,由于綜合工具的介入,由它所輸出的網(wǎng)表,有時候是非常難被設計者所理解的。這主要由三個方面的原因引起:1. 網(wǎng)表中除了在源程序中的寄存器能夠被明顯標志以外,其它的組合邏輯被映射(Map)到LUT中,但綜合工具并沒有提供一種很有效且有意義的方式進行對組合邏輯的命名,這使得設計者不容易找到組合邏輯的對應關系;2. 網(wǎng)表中元件(Component)之間的連接變得非常復雜;3. 由于綜合工具的運用,會“優(yōu)化”掉一些它認為是“冗余”的邏輯或增加一些它認為是“必要”的邏輯。

上述因素直接影響到后端的布局布線控制。當然,設計者可以在約束文件(UCF)中使用用戶套(U_Set)、層次套(HU_Set)以及設置一個設計層次中元件相對的距離等措施來做一些后端控制。這樣的設置可以很好的控制寄存器的布局和布線,但并不能夠很好地完成對組合電路的布局布線控制。很明顯,對于高速設計,這樣的控制顯然是非常必要的。這使得我們要找到一種更好的方法來控制組合電路。

這個新方法應該滿足以下兩個條件。1. 對于高速設計,當通??刂品椒y以達到要求的時候,這個新方法應該能夠完全控制模塊內(nèi)部的布局布線;2. 用這個新方法建立的模塊在上層調(diào)用的時候所采用的仿真模型應該很容易建立,并且很容易保證它和建立模塊的功能上的一致性。滿足這兩個要求的方法就是建立宏模塊,更準確的說是建立硬件宏模塊,簡稱硬宏。

傳統(tǒng)的建立硬宏的方式是在Xilinx提供的FPGA Editor中直接在FPGA內(nèi)部來建立目標電路,然后把它存為一個宏文件。然后,在上層進行調(diào)用。這種方法的弊端是顯而易見的。1. 要在這樣一個“艱苦”的環(huán)境下建立一個硬宏是一件非常麻煩的事情。設計者必須進入到Slice內(nèi)部,來控制一個Slice內(nèi)部的器件選擇和器件之間的連線,同時也正由于它非常的麻煩,導致了設計很容易出錯;2. 這樣設計出來的宏的功能驗證非常繁瑣;3. 要為這樣的宏建立仿真模型也很麻煩,一般的方法是人為的直接編寫一個行為仿真模型,然后在上層設計中調(diào)用這個仿真模型,然而要保證仿真模型和宏之間的一致性也是一件不太容易的事情。另外還有一種使用Xilinx的Foundation建立宏的方法,這個方法在進一步討論部分將會提到它的不足之處。

解決方法

鑒于以上的原因,現(xiàn)在采用另外一個新的流程(圖1)來設計并建立一個宏。

基于FPGA的高速電路設計中一種新型硬宏開發(fā)流程

第一步,為了使設計者不必進入到Slice里面進行電路的設計,而有一個很好的設計環(huán)境,使用Aldec公司Active-HDL來進行宏內(nèi)部電路的輸入。在Active-HDL中,有一個庫管理(Library Manager)功能,在這個庫管理中,有很多子庫,每個子庫都有它不同的用途。在這些子庫中,Schematic子庫專門為Xilinx提供圖形輸入的。設計者調(diào)用這類庫的元件來建立宏的內(nèi)部電路。

這一步需要注意:1.時鐘進入芯片的時候,應該通過BUFGP進入。通過BUFGP把時鐘引入全局時鐘網(wǎng)絡。BUFGP并不是一個物理上對應的元件,Xilinx只是為了方便設計者的調(diào)用,而把IBUFG和BUFG在表示上合成一個元件。但當用到DLL或其他時鐘連接方式的時候,應該把BUFGP拆開,單獨的使用IBUFG和BUFG;2.在各個PIN的位置,要加上相應電氣參數(shù)的IBUF或OBUF;3. 強烈建議對SLICE里面的元件進行詳細的了解;4.對于寄存器,寄存器和組合邏輯之間的連線,組合邏輯和組合邏輯之間的連線,都使用有意義的名字,以方便在下端工具中查看電路時,與上端電路圖的對應;5.在設計的時候應該把關鍵路徑記錄下來,在下端檢查的時候要防止出現(xiàn)組合電路競爭。

第二步,直接對這個電路進行功能仿真。Schematic庫中的元件可以直接支持基于門級的功能仿真。直接對這個電路圖仿真可以從一開始就保證宏的功能正確性。Active-HDL提供了一個非常友好的仿真界面。它可以把仿真波形進行存儲,而且,在以后的仿真中可以把第一次仿真所存儲的輸入向量波形當成激勵。這樣的做法大大地提高了效率,因為不用再為了一個小模塊而專門編寫它的測試基準(Test Bench)。

第三步,由Active-HDL直接輸出EDIF網(wǎng)表,在這個網(wǎng)表中記錄了宏的內(nèi)部電路信息。Active-HDL可以把圖形轉(zhuǎn)換成三種語言形式的網(wǎng)表,VHDL、Verilog HDL和EDIF。而其他的上層輸入工具一般只能輸出兩種,VHDL和Verilog HDL,如Mentor Graphics的HDL Design Series。選擇Diagram菜單中的Set Target HDL選項來實現(xiàn)這一語言的切換。請注意,Set Target HDL選項只有在圖形輸入方式的時候才出現(xiàn)在Diagram菜單中。

第四步,把Active-HDL產(chǎn)生的這個EDIF網(wǎng)表直接交給Xilinx的后端工具進行處理。這樣,就繞開了綜合工具的干預,使得精細的下端控制成為可能。值得注意的是,由于繞開了綜合工具,很多綜合工具原來要做的工作就必須由設計者自己去做。這就是為什么第一步提到要添加相應電氣參數(shù)的IBUF和OBUF以及時鐘引腳要添加全局時鐘緩沖器(BUFG)的原因。如果在第一步中忘記了這一點,會直接導致后端的映射工具把設計中的電路全部清空,然后報告出錯。后端工具只需要進行三個步驟的處理就可以了,即翻譯、映射以及布局和布線,其他的處理都不需要。處理完后會生成一些關鍵的文件,分別是project_name.ngd、project_name.ncd和map.ncd。

第五步,把處理得到的project_name.ncd文件拿到FPGA Editor中進行宏的生成。注意在使用FPGA Editor打開這個文件的時候,應該選擇Read Write模式進入。進入之后,首先應該做的工作就是把設計中所有的IBUF和OBUF全部刪除。這可以在LIST窗口來進行。在刪除的同時,與這些IBUF和OBUF連接的連線也被同步刪除。這樣一來,就只剩下了功能部分。值得一提的是,在第四步中映射對電路進行處理的時候會完成把組合電路映射到LUT的功能。但由于在第一步中對組合電路和組合電路之間的連線使用了有意義的名稱命名,使得在這一步中要找到原始電路圖中的對應并不難。這一點是使用綜合工具流程所不能實現(xiàn)的。設計者通過名字的對應,就找到在第一步中記錄的關鍵路徑,通過使用Delay功能來顯示線路延遲,從而判斷電路是否可以工作。如果不行,使用FPGA Editor中的相應工具來進行路徑的重新布線,這個布線可以使用人工布線。在這一步中嚴禁進行邏輯修改,而只允許進行布線修改。具體怎么使用FPGA Editor可以參考FPGA Editor用戶指南。當完成了修改過后,把NCD文件另存為NMC文件,這樣就生成了需要的硬宏。

第六步,生成宏的邏輯仿真模型。再回到Active-HDL中,打開宏的電路圖,使用Set Target HDL的語言切換功能,把圖形轉(zhuǎn)成Verilog HDL網(wǎng)表或是VHDL網(wǎng)表。這個網(wǎng)表就可以作為宏的仿真模型。因為這個網(wǎng)表是由標準HDL形成,那么它可以在任何HDL仿真器中調(diào)用,如ModelSim和VCS等。

至此整個流程的介紹全部完成。

進一步的討論

關于流程的替代方案。事實上,整個流程似乎用Xilinx的Foundation也能完成。但是,有一個關鍵的步驟Foundation是不能完成的,那就是Foundation不能根據(jù)電路圖輸出基于Verilog HDL和VHDL的仿真模型,這樣直接影響了宏的仿真通用性。另外,F(xiàn)oundation自己提供的仿真環(huán)境又相當不完善。

關于仿真模型和宏的功能一致性。由于仿真模型和宏的網(wǎng)表都來自于一個電路圖,這樣從上層保證了兩者的一致性。另外,在第五步中,嚴禁進行邏輯修改,又進一步的保證兩者的功能一致性,排除第二次建模的可能,從而把人為的錯誤減到最低。

關于完全控制后端布局布線。在FPGA Editor中,設計者可以根據(jù)上下層名稱對應來確定關鍵路徑,從而進行完全人為的布局布線控制,這就是在第一步中使用有意義名稱的原因所在。

很明顯的一點,這個流程不應該作為一個大項目的主要開發(fā)流程,因為,這樣人力消耗太多,同時也失去了使用HDL語言和開發(fā)綜合工具的意義。比較合適的一種用法是把它使用在關鍵路徑模塊和常規(guī)控制不能達到預期要求的模塊上,因為它可以提供對后端的完全人為的控制,排除工具對設計的干擾。將基于HDL語言的設計方法與這種建立并使用硬宏的方法相結合,對基于FPGA的高速電路設計大有裨益。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1620

    文章

    21510

    瀏覽量

    598940
  • 芯片
    +關注

    關注

    450

    文章

    49636

    瀏覽量

    417191
  • 寄存器
    +關注

    關注

    31

    文章

    5253

    瀏覽量

    119206
收藏 人收藏

    評論

    相關推薦

    請問怎么設計一種新型射頻開關轉(zhuǎn)換電路

    怎么設計一種新型射頻開關轉(zhuǎn)換電路?射頻開關轉(zhuǎn)換電路設計步驟有哪些?
    發(fā)表于 04-21 07:06

    請問怎樣去設計一種新型電壓基準電路?

    為什么要設計一種新型電壓基準電路?怎樣去設計一種新型電壓基準電路?
    發(fā)表于 04-22 06:37

    FPGA應用設計中一種嶄新的開發(fā)流程是怎樣的

    FPGA應用設計中一種嶄新的開發(fā)流程是怎樣的
    發(fā)表于 05-06 06:49

    如何去實現(xiàn)一種基于FPGA芯片的可重構數(shù)字電路設計

    FPGA芯片是由哪些部分組成的?如何去實現(xiàn)一種基于FPGA芯片的可重構數(shù)字電路設計?
    發(fā)表于 11-05 08:38

    Lorenz混沌電路一種新型設計方法

    System Generator 是一種新型的基于FPGA 的信號處理建模和設計工具。本文首先介紹了System Generator 的主要特色和設計流程,然后基于此工具給出了Lore
    發(fā)表于 07-08 15:02 ?24次下載

    一種基于DSP和FPGA的雷達信號分選電路設計

    設計了一種基于DSP 和FPGA 的雷達信號分選電路,對密集的雷達信號進行分選識別。系統(tǒng)利用FPGA 采集信號的特征參數(shù)以及對參數(shù)進行預處理;采用了累積差值直方圖算法,根據(jù)信號脈
    發(fā)表于 07-16 10:52 ?26次下載

    一種新型高速采樣保持電路

    一種新型高速采樣保持電路摘要 : 本文提出了一種新型的基于運算放大器的開關電容采樣保持
    發(fā)表于 05-24 15:44 ?49次下載

    一種新型的可拉伸硅集成電路

    一種新型的可拉伸硅集成電路     諾斯大學的研究人員開發(fā)一種新型
    發(fā)表于 07-29 14:00 ?1210次閱讀

    高速SDRAM存儲器接口電路設計(Altera FPGA開發(fā)板)

    高速SDRAM存儲器接口電路設計(Altera FPGA開發(fā)板)如下圖所示:
    發(fā)表于 08-15 14:33 ?3420次閱讀
    <b class='flag-5'>高速</b>SDRAM存儲器接口<b class='flag-5'>電路設計</b>(Altera <b class='flag-5'>FPGA</b><b class='flag-5'>開發(fā)</b>板)

    一種基于FPGA的以太網(wǎng)高速傳輸平臺

    一種基于FPGA的以太網(wǎng)高速傳輸平臺,采用DM9000和FPGA芯片,實現(xiàn)100M以太網(wǎng)數(shù)據(jù)傳輸
    發(fā)表于 02-25 14:45 ?17次下載

    一種新型的鍵盤與顯示電路設計

    本設計采用P87LPC769單片機,開發(fā)一種新型的鍵盤與顯示電路,系統(tǒng)穩(wěn)定性高、準確性好,使用方便靈活。
    發(fā)表于 03-30 17:02 ?6次下載

    研究人員開發(fā)一種新型的磁力驅(qū)動高速軟件機器人

    《通訊-材料》最近發(fā)表了篇關于技術研究和開發(fā)的論文,研究人員成功地開發(fā)一種新型的磁力驅(qū)動高速
    的頭像 發(fā)表于 10-10 10:57 ?2728次閱讀

    一種提升芯片供電可靠性的方法

    東科半導體的芯片供電專利,針對了現(xiàn)有供電網(wǎng)絡結構的缺陷,提出了一種提升芯片供電可靠性的方法,通過在
    的頭像 發(fā)表于 11-09 10:48 ?1917次閱讀

    淺析一種新型機載防浪涌電壓保護電路設計

    淺析一種新型機載防浪涌電壓保護電路設計
    發(fā)表于 02-11 10:06 ?8次下載

    一種新型的鍵盤與顯示電路設計

    電子發(fā)燒友網(wǎng)站提供《一種新型的鍵盤與顯示電路設計.pdf》資料免費下載
    發(fā)表于 10-20 11:34 ?0次下載
    <b class='flag-5'>一種</b><b class='flag-5'>新型</b>的鍵盤與顯示<b class='flag-5'>電路設計</b>