国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

FPGA應用設計中一種嶄新的硬宏開發流程

發布時間:2010-9-25 23:45    發布者:eetech
在現今應用FPGA進行芯片電路設計的領域,已經使用HDL語言以及擁有強大功能的邏輯綜合工具來進行設計。同時,高速電路也越來越被普遍使用,這一趨勢使得芯片設計工程師把眼光越來越多的投向對后端布局布線的控制,因為對于高速設計,精細的后端控制是保障電路可靠運行的重要條件。在實踐中,精細的后端控制也越來越顯出它的重要性,同時要求設計者投入到這個方面的時間也越來越多。  

問題的提出  

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

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

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

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

解決方法  

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



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

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

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

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

第四步,把Active-HDL產生的這個EDIF網表直接交給Xilinx的后端工具進行處理。這樣,就繞開了綜合工具的干預,使得精細的下端控制成為可能。值得注意的是,由于繞開了綜合工具,很多綜合工具原來要做的工作就必須由設計者自己去做。這就是為什么第一步提到要添加相應電氣參數的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的功能。但由于在第一步中對組合電路和組合電路之間的連線使用了有意義的名稱命名,使得在這一步中要找到原始電路圖中的對應并不難。這一點是使用綜合工具流程所不能實現的。設計者通過名字的對應,就找到在第一步中記錄的關鍵路徑,通過使用Delay功能來顯示線路延遲,從而判斷電路是否可以工作。如果不行,使用FPGA Editor中的相應工具來進行路徑的重新布線,這個布線可以使用人工布線。在這一步中嚴禁進行邏輯修改,而只允許進行布線修改。具體怎么使用FPGA Editor可以參考FPGA Editor用戶指南。當完成了修改過后,把NCD文件另存為NMC文件,這樣就生成了需要的硬宏。  

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

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

進一步的討論  

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

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

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

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

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美三级短视频 | h番在线观看 | 九九在线| 亚洲视频男人的天堂 | 香蕉国产人午夜视频在线观看 | 欧美一区二区三区香蕉视 | 性战美乳洋妞 | 久久香蕉综合精品国产 | 欧美日韩在线永久免费播放 | 毛片女人毛片一级毛片毛片 | 蜜臀91精品国产免费观看 | 久久国产偷 | 天天操天天摸天天爽 | 国产三级一区二区 | a级日韩乱理伦片在线观看 a级片免费在线播放 | 自拍毛片| 欧美精品成人一区二区视频一 | 国产精品国产自线在线观看 | 欧美一级特黄视频 | 婷婷热| 久草视频中文 | 亚洲视频在线观看视频 | 日韩在线视频免费不卡一区 | 亚洲日本韩国欧美 | 日日摸夜夜摸无需播放器 | 在线观看日韩欧美 | 午夜精品九九九九99蜜桃 | 亚洲日日做天天做日日谢 | 四虎影院免费观看视频 | 亚洲日韩第一页 | 欧美另类视频一区二区三区 | 97在线播放视频 | 天天操天天操天天干 | 日韩网站在线 | 欧美视频在线观看一区二区 | 久久鸭综合久久国产 | 亚洲热在线视频 | 成人免费一区二区三区在线观看 | 亚洲欧美另类专区 | 国产韩国精品一区二区三区久久 | 日本不卡二 |