日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
原型驗(yàn)證過程中的ASIC到FPGA的代碼轉(zhuǎn)換技術(shù)
原型驗(yàn)證過程中的ASIC到FPGA的代碼轉(zhuǎn)換技術(shù)
 更新時(shí)間:2008-8-18 9:54:43  點(diǎn)擊數(shù):18
【字體: 字體顏色

    圖4 FPGA內(nèi)帶有時(shí)鐘使能的寄存器

    充分利用FPGA中已有的IP核

    FPGA廠商及第三方廠商已經(jīng)實(shí)現(xiàn)并優(yōu)化了很多典型的IP核,例如Xilinx提供了基礎(chǔ)邏輯、總線接口與I/O、視頻與圖像處理、數(shù)字信號(hào)處理、存儲(chǔ)器接口、微處理器、控制器等大量IP核。在代碼轉(zhuǎn)換時(shí)可以充分利用這些資源,對(duì)代碼進(jìn)行優(yōu)化來提高設(shè)計(jì)性能。如在FPGA中使用SRL實(shí)現(xiàn)移位寄存器,用三態(tài)Buffer來替換三態(tài)總線和三態(tài)MUX,改進(jìn)算術(shù)單元和有限狀態(tài)機(jī)的編碼。
代碼轉(zhuǎn)換的實(shí)現(xiàn)。

    結(jié)合同濟(jì)大學(xué)微電子中心的“32位高性能嵌入式CPU開發(fā)”項(xiàng)目,為了在流片之前確保功能的可靠性,對(duì)32位全定制高性能嵌入式CPU bc320進(jìn)行了原型驗(yàn)證。

    設(shè)計(jì)采用Memec Design公司的FF1152開發(fā)板。該板使用了Xilinx的Virtex-Ⅱ Pro系列芯片中的XC2VP30。該FPGA擁有30 816個(gè)邏輯單元,相當(dāng)于有30多萬的ASCI門。另有2Mb的片上Block RAM,644個(gè)I/O口。采用了Xilinx的全自動(dòng)、完整的集成設(shè)計(jì)環(huán)境ISE 7.1i,進(jìn)行FPGA綜合使用的工具是Synplify Pro。

    用bc320的ASIC RTL代碼作為FPGA的輸入,具體的代碼轉(zhuǎn)換如下。

    存儲(chǔ)單元

    設(shè)計(jì)中用到了很多SRAM,例如Icache中的SRAM。在FPGA實(shí)現(xiàn)時(shí)根據(jù)所需RAM的寬度、深度和功能來決定采用哪種單元來進(jìn)行替換。Xilinx提供了片外RAM、Block RAM和LUT RAM。

    ISE提供了兩種具體的實(shí)現(xiàn)方法:IP生成器(Core Generator)和語言模板(Language Templates)。IP生成器是Xilinx FPGA設(shè)計(jì)中的一個(gè)重要設(shè)計(jì)輸入工具,它提供了大量Xilinx和第三方公司設(shè)計(jì)的成熟高效IP核。

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

   

                                  圖5 IP生成器的界面

    Language Templates主要利用Xilinx的塊存儲(chǔ)器元件庫,直接進(jìn)行調(diào)用。XC2VP30內(nèi)部的單口塊存儲(chǔ)器型號(hào)主要有:16k×1bit、1k×16bit、2k×8bit、4k×4bit、512×32bit、8k×2bit。可以根據(jù)自己的需要隨意調(diào)用這些模塊,在RTL代碼中實(shí)例化,并把SRAM初始值作為參數(shù)傳遞進(jìn)去。這些模塊在Synplify Pro中根據(jù)選定的FPGA型號(hào)被自動(dòng)識(shí)別,然后綜合成統(tǒng)一的.edn文件,再進(jìn)行后續(xù)操作。語言模板方式的靈活性比較強(qiáng),可以設(shè)置多個(gè)不同位寬,不同深度的塊存儲(chǔ)器,仿真也比較方便,但是參數(shù)設(shè)定時(shí),SRAM初始值的設(shè)置比較麻煩。

    另外,Xilinx提供工具Data2mem,它可以每次只改變FPGA中塊存儲(chǔ)器的內(nèi)容,而不需將整個(gè)設(shè)計(jì)重新翻譯、映射和布局布線,為大量的向量驗(yàn)證節(jié)約了時(shí)間。

    時(shí)鐘單元

    在bc320設(shè)計(jì)中,CPU內(nèi)核通過SYSAD接口與外部SRAM連接。這些外部SRAM的時(shí)鐘和主時(shí)鐘是不一致的,在ASIC中,用一個(gè)PLL來實(shí)現(xiàn)。這個(gè)PLL模塊是無法用Synplify Pro綜合的,在FPGA上必須將它用Xilinx的數(shù)字時(shí)鐘管理模塊(DCM)來替換。同樣可以利用Core Generator和Language Templates這兩種方法。

    利用Core Generator產(chǎn)生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);

    時(shí)鐘使能帶代替門控時(shí)鐘

    把實(shí)現(xiàn)門控時(shí)鐘信號(hào)轉(zhuǎn)換成實(shí)現(xiàn)使能信號(hào),例如信號(hào)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開發(fā)板上集成了很多接口和器件,在原型驗(yàn)證時(shí),可以充分利用這些接口和器件做為和設(shè)計(jì)的交互環(huán)境。這些接口和器件需要正確配置后才能正常工作,這部分配置工作可以用FPGA實(shí)現(xiàn)。

    設(shè)計(jì)增加了LCD接口單元、內(nèi)部記分牌(scoreboard)模塊和通用異步串行接收發(fā)送(UART)模塊。作為保存向量內(nèi)容的SRAM設(shè)定好后,可以用同樣的方法將寄存器參考值也保存在另外的塊存儲(chǔ)器中。然后運(yùn)行CPU,將CPU實(shí)際產(chǎn)生的寄存器值和已保存過的參考值在記分牌模塊中進(jìn)行實(shí)時(shí)比較,然后將結(jié)果輸出到LCD顯示屏上。

    為了便于代碼的管理和維護(hù),可以對(duì)原RTL代碼進(jìn)行一定的封裝。將原ASIC流程的代碼單獨(dú)封裝在一個(gè)模塊中,再和FPGA實(shí)現(xiàn)時(shí)添加的片外配置控制單元的代碼一起形成新的FPGA實(shí)現(xiàn)頂層。所以在ASIC代碼的基礎(chǔ)上增加了對(duì)這幾個(gè)器件完成配置工作的代碼部分。

    為了原型系統(tǒng)獲得更高的性能,還可以對(duì)其他一些模塊的代碼進(jìn)行適當(dāng)?shù)母倪M(jìn),如算術(shù)單元和狀態(tài)機(jī)的編碼風(fēng)格等。但對(duì)于全定制的cpu bc320,沒有必要修改算術(shù)單元模塊的代碼,關(guān)鍵是存儲(chǔ)模塊和時(shí)鐘單元。因此要根據(jù)自己的設(shè)計(jì)適當(dāng)選擇要修改的代碼。

  • 上一篇: 8MHz極速開關(guān)調(diào)整器技術(shù)
  • 下一篇: 基于FPGA技術(shù)實(shí)現(xiàn)DSP的UART
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1