色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

基于現場可編程器件的原型技術驗證asic的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-07-23 08:07 ? 次閱讀

在對asic設計進行fpga原型驗證時,由于物理結構不同,asic的代碼必須進行一定的轉換后才能作為fpga的輸入。現代集成電路設計中,芯片的規模和復雜度正呈指數增加。尤其在asic設計流程中,驗證和調試所花的時間約占總工期的70%。為了縮短驗證周期,在傳統的仿真驗證的基礎上,涌現了許多新的驗證手段,如斷言驗證、覆蓋率驅動的驗證,以及廣泛應用的基于現場可編程器件(fpga)的原型驗證技術。

采用fpga原型技術驗證asic設計,首先需要把asic設計轉化為fpga設計。但asic是基于標準單元庫,fpga則是基于查找表,asic和fpga物理結構上的不同,決定了asic代碼需要一定的修改才能移植到fpga上。但應該注意到這只是由于物理結構不同而對代碼進行的轉換,并不改變其功能,因此對代碼的這種修改只能限制在一定范圍內。

基本原理

基于fpga原型驗證的流程

由于fpga的可編程特性,基于fpga的原型技術已經被廣泛采用。和仿真軟件相比,fpga的硬件特性可以讓設計運行在較高的頻率上,加速仿真。另一方面,可以在asic芯片設計前期并行設計外圍電路及應用軟件,縮短了芯片驗證周期。

fpga原型驗證和其他驗證方法是不同的,任何一種其他驗證方法都是asic驗證中的一個環節,而fpga驗證卻是一個過程。由于fpga與asic在結構、性能上各不相同,asic是基于標準單元庫,fpga用的是廠商提供的宏單元模塊,因此首先要進行寄存器傳輸級(rtl)代碼的修改。然后進行fpga器件映射,映射工具根據設置的約束條件對rtl代碼進行邏輯優化,并針對選定的fpga器件的基本單元映射生成網表。接著進行布局布線,生成配置文件和時序報告等信息。當時序能滿足約束條件時,就可以利用配置文件進行下載。如果時序不能滿足約束,可通過軟件報告時序文件來確認關鍵路徑,進行時序優化。可以通過修改約束條件,或者修改rtl代碼來滿足要求。

需要轉換的代碼

存儲單元

存儲單元是必須進行代碼轉換的,asic中的存儲單元通常用代工廠所提供的memory compiler來定制,它可以生成.gsp、.v等文件。.v文件只用來做功能仿真,通常不能綜合。而最后流片時,只需將標準提供給代工廠。如果直接將asic代碼中的存儲單元作為fpga的輸入,通常綜合器是綜合不出來的,即使能綜合出來,也要花費很長時間,并且資源消耗多、性能不好。而fpga廠商其實已經提供了經過驗證并優化的存儲單元。因此存儲單元要進行代碼轉換。

時鐘單元

數字電路中,時鐘是整個電路最重要、最特殊的信號。在asic中,用布局布線工具來放置時鐘樹,利用代工廠提供的pll進行時鐘設計。fpga中通常已經配置一定數量的pll宏單元,并有針對時鐘優化的全局時鐘網絡,一般是經過fpga的特定全局時鐘管腳進入fpga內部,后經過全局時鐘buf適配到全局時鐘網絡的,這樣的時鐘網絡可以保證相同的時鐘沿到達芯片內部每一個觸發器的延遲時間差異是可以忽略不計的。因此時鐘單元也是需要進行轉換的。

增加流水

由于實現結構上的不同,fpga器件內部的單元延時遠大于asic的基本門單元延時。導致在同樣設計的情況下,asic可以滿足其時序,而fpga有可能無法滿足。為了驗證的需要,修改asic代碼實現fpga原型時,對asic實現的流水結構在fpga實現時需要適當增加流水。比如在一個很長的組合邏輯路徑中加入寄存器。如圖1所示。

基于現場可編程器件的原型技術驗證asic的設計

同步設計

在fpga設計中,同步設計是應該遵循的重要原則。異步設計容易導致電路處于亞穩態,產生毛刺。當從asic設計轉向fpga設計時,應該進行仔細的同步。具體體現在主時鐘選取、功能模塊的統一復位、同步時序電路設計

在fpga設計中要使用時鐘使能代替門控時鐘。在asic的設計中,為了減少功耗,使用門控時鐘(clock gating),門控時鐘的結構如圖2所示。當寫有效時,數據才寫進存儲器,那么只有寫有效時,寄存器才會發生翻轉,這樣可以減少功耗。

基于現場可編程器件的原型技術驗證asic的設計

圖2 門控時鐘示意圖

由于設計的異步特性,對于fpga來說,使用這種門控時鐘容易產生毛刺,導致數據不正確。所以在fpga設計中,使用有使能信號的電路來替換門控時鐘電路。可以在寄存器前面加上mux來實現時鐘使能信號,如圖3所示。現在的fpga廠商則提供可以直接有使能,同步set和reset引腳的寄存器,如圖4所示。

基于現場可編程器件的原型技術驗證asic的設計

圖3 用mux生成時鐘使能信號

基于現場可編程器件的原型技術驗證asic的設計

圖4 fpga內帶有時鐘使能的寄存器

充分利用fpga中已有的ip核

fpga廠商及第三方廠商已經實現并優化了很多典型的ip核,例如xilinx提供了基礎邏輯、總線接口與i/o、視頻與圖像處理、數字信號處理、存儲器接口、微處理器控制器等大量ip核。在代碼轉換時可以充分利用這些資源,對代碼進行優化來提高設計性能。如在fpga中使用srl實現移位寄存器,用三態buffer來替換三態總線和三態mux,改進算術單元和有限狀態機的編碼。

代碼轉換的實現

結合同濟大學微電子中心的“32位高性能嵌入式cpu開發”項目,為了在流片之前確保功能的可靠性,對32位全定制高性能嵌入式cpu bc320進行了原型驗證。

設計采用memec design公司的ff1152開發板。該板使用了xilinx的virtex-ⅱ pro系列芯片中的xc2vp30。該fpga擁有30 816個邏輯單元,相當于有30多萬的asci門。另有2mb的片上block ram,644個i/o口。采用了xilinx的全自動、完整的集成設計環境ise 7.1i,進行fpga綜合使用的工具是synplify pro。

用bc320的asic rtl代碼作為fpga的輸入,具體的代碼轉換如下。

存儲單元

設計中用到了很多sram,例如icache中的sram。在fpga實現時根據所需ram的寬度、深度和功能來決定采用哪種單元來進行替換。xilinx提供了片外ram、block ram和lut ram。

ise提供了兩種具體的實現方法:ip生成器(core generator)和語言模板(language templates)。ip生成器是xilinx fpga設計中的一個重要設計輸入工具,它提供了大量xilinx和第三方公司設計的成熟高效ip核。

這里是用core generator來產生了名為塊存儲器(block memory)的單口存儲器模塊。core generator用圖形化設置參數的方式來提供塊存儲器,其界面如圖5所示。塊存儲器的大小根據向量的大小來制定,一個普通單元向量只需要4個512×32bit的塊存儲器就夠了。core generator產生塊存儲器時,除了參數設置外,還需要輸入一個為.coe的文件來初始化塊存儲器的內容。core generator產生的文件同時考慮了后端執行和仿真兩方面,主要有三個文件:file.v,file.mif,file.edn。其中.v文件為verilog格式的sram仿真模型; .mif文件為作為其初始化內容,其內容和.coe文件里的具體向量內容是一致的;而實際后端文件為.edn,包含了塊存儲器的全部信息。

基于現場可編程器件的原型技術驗證asic的設計

圖5 ip生成器的界面

language templates主要利用xilinx的塊存儲器元件庫,直接進行調用。xc2vp30內部的單口塊存儲器型號主要有:16k×1bit、1k×16bit、2k×8bit、4k×4bit、512×32bit、8k×2bit。可以根據自己的需要隨意調用這些模塊,在rtl代碼中實例化,并把sram初始值作為參數傳遞進去。這些模塊在synplify pro中根據選定的fpga型號被自動識別,然后綜合成統一的.edn文件,再進行后續操作。語言模板方式的靈活性比較強,可以設置多個不同位寬,不同深度的塊存儲器,仿真也比較方便,但是參數設定時,sram初始值的設置比較麻煩。

另外,xilinx提供工具data-mem,它可以每次只改變fpga中塊存儲器的內容,而不需將整個設計重新翻譯、映射和布局布線,為大量的向量驗證節約了時間。

時鐘單元

在bc320設計中,cpu內核通過sysad接口與外部sram連接。這些外部sram的時鐘和主時鐘是不一致的,在asic中,用一個pll來實現。這個pll模塊是無法用synplify pro綜合的,在fpga上必須將它用xilinx的數字時鐘管理模塊(dcm)來替換。同樣可以利用core generator和language templates這兩種方法。

利用core generator產生mydcm.v文件來代替原先的pllgs_500.v,代碼如下。第二段代碼是修改后的代碼。

module pllgs_500( pll_k,

pll_m,

pll_n,

pll_pd,

pll_tst,

reset,

xin,

clk_out,

tst_out);

module mydcm(clkin_in,

rst_in,

clkfx_out,

clkin_ibufg_out,

locked_out);

時鐘使能帶代替門控時鐘

把實現門控時鐘信號轉換成實現使能信號,例如信號pcepl,代碼如下。第二段代碼是修改后的代碼。

module(out,in,clk, pcepl);

……

always @ (clk or pcepl)

assign pceplv = pcepl & clk;

always @(posedge pceplv)

begin

out 《= in;

end

endmodule

module(out,in,clk, pcepl);

……

always @(posedge clk)

begin

if (pcepl)

out 《= in;

else

out 《= out;

end

endmodule

外部器件配置單元和頂層封裝

在ff1152開發板上集成了很多接口和器件,在原型驗證時,可以充分利用這些接口和器件做為和設計的交互環境。這些接口和器件需要正確配置后才能正常工作,這部分配置工作可以用fpga實現。

設計增加了lcd接口單元、內部記分牌(scoreboard)模塊和通用異步串行接收發送(uart)模塊。作為保存向量內容的sram設定好后,可以用同樣的方法將寄存器參考值也保存在另外的塊存儲器中。然后運行cpu,將cpu實際產生的寄存器值和已保存過的參考值在記分牌模塊中進行實時比較,然后將結果輸出到lcd顯示屏上。

為了便于代碼的管理和維護,可以對原rtl代碼進行一定的封裝。將原asic流程的代碼單獨封裝在一個模塊中,再和fpga實現時添加的片外配置控制單元的代碼一起形成新的fpga實現頂層。

所以在asic代碼的基礎上增加了對這幾個器件完成配置工作的代碼部分。

為了原型系統獲得更高的性能,還可以對其他一些模塊的代碼進行適當的改進,如算術單元和狀態機的編碼風格等。但對于全定制的cpu bc320,沒有必要修改算術單元模塊的代碼,關鍵是存儲模塊和時鐘單元。因此要根據自己的設計適當選擇要修改的代碼。


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

    關注

    1630

    文章

    21794

    瀏覽量

    605128
  • asic
    +關注

    關注

    34

    文章

    1206

    瀏覽量

    120644
  • 存儲器
    +關注

    關注

    38

    文章

    7527

    瀏覽量

    164169
收藏 人收藏

    評論

    相關推薦

    利用可編程器件CPLD/FPGA實現VGA圖像控制器的設計方案

    利用可編程器件CPLD/FPGA實現VGA彩色顯示控制器在工業現場中有許多實際應用。以硬件描述語言VHDL對可編程器件進行功能模塊設計、仿真綜合,可實現VGA顯示控制器顯示各種圖形、圖像、文字,并實現了動畫效果。
    發表于 08-30 12:03 ?1121次閱讀
    利用<b class='flag-5'>可編程器件</b>CPLD/FPGA實現VGA圖像控制器的設計方案

    現場可編程門陣列有哪些應用?

    現場可編程門陣列(FPGA)是一種可編程邏輯器件,由成千上萬個完全相同的可編程邏輯單元組成,周圍是輸入/輸出單元構成的外設。制造完成后,FPGA可以在工作
    發表于 08-06 08:27

    FPGA原型驗證技術進階之路

    FPGA原型驗證已是當前原型驗證的主流且成熟的芯片驗證方法——它通過將RTL移植到現場
    發表于 08-21 05:00

    FPGA可編程器件和CPLD可編程器件有哪些相同點和不同點

    CPLD是什么?FPGA包含哪幾類可編程資源呢?FPGA可編程器件和CPLD可編程器件有哪些相同點和不同點?
    發表于 11-10 07:42

    可編程器件編程原理是什么?

    可編程器件編程原理是什么?指令集對CPU的意義是什么?
    發表于 11-30 07:39

    基于可編程器件的任意進制計數器的設計

    采用可編程器件設計電路,利用MAX+plus II設計軟件中LPM元件庫所提供的lpm_counter元件,實現任意進制計數器的設計。該計數器電路與結構無關,可編程器件的芯片利用率及效率達到最
    發表于 12-29 17:47 ?55次下載

    DSP器件現場可編程技術

    DSP器件現場可編程技術 DSP問世以來,以其強大的功能、合理的價格已經被設計者廣泛應用。但不同于FPGA器件的是,DSP并不是為現場
    發表于 01-07 10:11 ?931次閱讀
    DSP<b class='flag-5'>器件</b>的<b class='flag-5'>現場</b><b class='flag-5'>可編程技術</b>

    現場可編程門陣列(FPGA)——知識專題

    FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。在專用集成電路(ASIC
    發表于 09-08 16:34
    <b class='flag-5'>現場</b><b class='flag-5'>可編程</b>門陣列(FPGA)——知識專題

    EDA技術可編程ASIC的設計實現

    EDA技術可編程ASIC的設計實現,下來看看。
    發表于 05-19 15:16 ?0次下載

    可編程器件緒論

    可編程器件緒論
    發表于 09-19 15:40 ?7次下載
    <b class='flag-5'>可編程器件</b>緒論

    電子技術基礎知識存儲器、復雜可編程器件現場可編程門陣列的介紹

    本文檔的詳細介紹的是電子技術基礎知識存儲器、復雜可編程器件現場可編程門陣列的介紹主要內容包括了: 1 只讀存儲器,2 隨機存取存儲器,3 復雜可編
    發表于 02-22 08:00 ?29次下載
    電子<b class='flag-5'>技術</b>基礎知識存儲器、復雜<b class='flag-5'>可編程器件</b>和<b class='flag-5'>現場</b><b class='flag-5'>可編程</b>門陣列的介紹

    可編程邏輯器件ASIC對比介紹

    可編程邏輯器件PLD(Programmable Logic Device)就是一種可以由用戶定義和設置邏輯功能的數字集成電路,屬于可編程 ASIC
    發表于 09-04 17:02 ?2766次閱讀

    什么是FPGA原型驗證?如何用FPGA對ASIC進行原型驗證

    FPGA原型設計是一種成熟的技術,用于通過將RTL移植到現場可編程門陣列(FPGA)來驗證專門應用的集成電路(
    發表于 04-10 09:23 ?1608次閱讀

    簡單認識現場可編程門陣列

    現場可編程門陣列 (Field Programmable Gate Array, FPGA)也稱為現場可編程器件,是在 PROM ( Programmable Read Only Me
    的頭像 發表于 12-01 09:25 ?898次閱讀

    可編程器件的特點和發展歷程

    )和讀寫存儲器(ROM)。 可編程器件的特點主要包括以下幾個方面: 可編程性:可編程器件可以根據需求進行編程,改變其功能和行為。它們通常具有編程
    的頭像 發表于 12-21 17:19 ?926次閱讀
    主站蜘蛛池模板: 老师的脚奴| 国产白浆视频在线播放| 国产精品亚洲视频在线观看 | 美女被爽cao免费漫画| 亚洲国产精品一区二区久久第| yy8090理论三级在线看| 久久九九少妇免费看A片| 亚洲、国产综合视频| 俄罗斯爱爱| 桥本有菜护士| 2021国产在线视频| 精品国产品在线18年| 无套内射CHINESEHD| 成 人 动漫3d 在线看| 米奇在线8888在线精品视频| 一本大道无码AV天堂欧美 | 伊人久久大香线蕉综合bd高清| 国产色精品久久人妻无码看片软件 | 国产AV亚洲精品久久久久软件| 欧美黑白配性xxxxx| 中文字幕亚洲第一| 九九热这里只有精品视频免费| 亚洲AV怡红院AV男人的天堂| 干了快生了的孕妇| 人淫阁| wwwwxxxx欧美| 农民下乡在线观看3| 做i爱视频30分钟免费| 久久婷婷五月综合色情| 一二三四韩国免费观看| 狠狠色狠狠色88综合日日91| 亚洲 欧美 国产在线视频| 国产精品高清视频在线| 色欲狠狠躁天天躁无码中文字幕 | 国产区在线不卡视频观看| 王小军怎么了最新消息| 国产69TV精品久久久久99| 色狠狠婷婷97| 国产97视频在线观看| 十分钟免费视频大全在线| 怪物高h粗暴无尽|