新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機軟核的SOPC系統設計與實現

        基于單片機軟核的SOPC系統設計與實現

        作者: 時間:2011-03-22 來源:網絡 收藏

        WISHBONE連線示意圖中只畫出一個主設備核和一個從設備核,情況可掛接多個主設備和從設備。本文采用了一主多從的結構,即一個主設備核(8051 IP核)控制總線,與多個從設備核(UART IP核、USB IP核等)進行數據傳輸。WISHBONE總線連接線可分為:同步信號線CLK-I;設備地址線ADR;主IP核到從IP核的數據輸出線DAT_O,從IP核到主IP核的數據輸入線DAT_I;控制線SEL、STB、CYC、ACK;附加線TAGN(用戶可以自行定義,本文定義了定信號線WE)。

        WISHBONE的數據傳輸由主設備控制,采用握手信號STB-O和ACK-I控制傳輸過程,如圖4所示。

        以本文為例,一個WSIHBONE總線讀周期的詳細過程可分解如下:

        (1)運行8051匯編程序,8051 IP核(主IP核)使CYC-O為高,表示8051 IP核占用總線;同時送出SEL-O信號選取從設備核(SEL-O信號線電平定義從設備核地址;本文中UART IP核地址為0001、I2C IP核地址為0010、USB IP核地址為0101;假設SEL-O送出的信號線電平為0101,即USB IP核被選中),同時發出STB-O握手信號通知從設備核送出數據。


        (2)USB IP核收到選中信號和STB激勵信號后,把數據放在數據線上,并送出ACK信號表明設備準備好。

        (3)8051 IP核收到ACK信號,從數據線上讀取數據。

        (4)數據讀出后,8051 IP核把STB信號置低,通知從IP核數據已讀出。

        (5)USB IP核收到STB低電平信號,把ACK置低,一個數據傳送周期結束。

        寫周期與以上過程類似,不同之處在于8051核收到ACK高電平信號后才把數據放在數據線上,由從IP核來讀取。

        2 方法與關鍵技術

        2.1 方法

        設計采用的核心工具軟件:設計輸入編程器及仿真工具——ActiveHDL6.1,邏輯綜合工具——Synplify Pro 7.6結構綜合工具——QuartusII v4.1,仿真工具——Modelsim 6.0 SE。Active DHL+Synplify+Quartus I工具鏈提供了從源代碼輸入到FPGA整個流程的核心開發平臺。

        SOC的設計、仿真和驗證確實是一個紛繁復雜的過程。在實際運行中,采用IP核分別設計然后再整合在一起的方法來進行:先進發單個IP核,仿真、下載到FPGA板進行測試,所有的IP核均滿足設計要求后,再掛接到WISHBONE總線上進行仿真與驗斑點。由于整體仿真成功的幾率太小,而且每次仿真占用的時間太長,因此設計中采用循序漸時的方法。實際上,每個IP核都有自身的特殊性,分別開發也是必然的。例如開發USB IP核時,就要單獨開發主機端(PC機)驅動程序及8051匯編接口。

        2.2 關鍵技術

        2.2.1 系統集成時仿真時間過長的解決

        SOC的仿真一直是該技術中耗時最長的。在用實現系統集成時,由于多個IP核集成后系統仿真時間延長,占用了系統寶貴的開發時間,而USB IP核仿真時占用時間最長,因此開發兩個模型:一個是USB HOST端的HDL行為模型,這個模型模擬了一個真實HOST的行為過程,如上電檢測、速度識別、標準設備請求等過程,并且可以檢測USB設備應答數據是否正確。另一個是8051 IP核的行為模型,用于仿真8051核的行為。把這兩個模型與USB IP連接,在Modelsim軟件包中進行仿真。實驗證明效果很好,與直接用IP核集成方式仿真相比,時間減少了80%以上。
        2.2.2 MC8051 IP核數據傳輸端口的選取

        在考慮如何選取MC8051 IP核的數據傳輸端口時,有兩種方案可供選擇:一種是利用四組8位并行I/O端口作為主設備(MASTER)數據傳送信號端口,它們的編程方式、時序、功能與8051的四個并行口p0、p1、p2、p3相似;另一種方案是利用該核特有的用于與RAM存儲器傳送數據的端口作為主設備端口;同時把RAM存儲器接在WISHBONE總線的從設備端口,以使從設備與8051 IC核進行數據傳輸。后一種方案與前一種方案相比,優點是當設備已經被選中處于就緒狀態時,只需要一條MOVX指令就可以完成對從設備的仿問(讀、寫操作)。而第一種方案至少需要先通過并行I/O端口輸出地址、再輸出數據或讀入數據,至少需要兩條以上傳送指令,增加了數據傳送時間。通過對代碼的分析和仿真可以知道,使用第二種方案大大提高了運行速度(約為前一種的三倍),同時方便了系統的開發。

        2.2.3 系統軟件的運行方式

        由于8051 IP核的指令執行從ROM中的0地址開始,因此需要把ASM5
        1匯編程序先編譯生成HEX文件,再把這個文件與硬件一起綜合、映射、下載,這樣該HEX文件就可以作為初始文件保留在ROM中,用來實現軟硬件協同仿真。

        2.2.4 仿真庫的選取

        有些軟件包不含所有的FPGA器件的單元庫(Logic Cell Library),如ActiveHDL6.1。因此仿真時常報庫單元不存在錯。設計中采用的辦法是用Modelsim仿真,并且提前編譯好的仿真用的單元庫。這樣就很好地完成了邏輯門級仿真和時序級(布局布線后)仿真。

        3 系統新增重要部分的設計及創新之處

        由于水文測報的特殊性,常常需要傳送大容量的文件,如圖片、實時數據采集包等,同時有些數據需要備份、上傳。原PCB板有UART、I2C等通信功能塊,本文的集成除了開發上述功能模塊IP核外,還增加了USB IP核的設計。在實際測試中,USB接口的使用大大提高了系統的數據傳輸速度,而且更方便、更靈活,大大提高了系統功能。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浏阳市| 崇文区| 庄河市| 周口市| 钟祥市| 南京市| 海城市| 微山县| 星座| 桐城市| 华蓥市| 平定县| 岳西县| 濮阳县| 枣阳市| 云霄县| 名山县| 荥阳市| 鹿邑县| 伊春市| 澳门| 无为县| 昭平县| 枣阳市| 邯郸县| 宁武县| 石渠县| 建德市| 潼关县| 濮阳市| 望谟县| 阜南县| 昭通市| 阿鲁科尔沁旗| 女性| 抚松县| 海南省| 丹寨县| 永善县| 民勤县| 泊头市|