新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 松耦合式可編程復雜SoC的設計實現

        松耦合式可編程復雜SoC的設計實現

        作者: 時間:2011-06-12 來源:網絡 收藏
        AHB總線及AHB控制器

        本文引用地址:http://www.104case.com/article/150604.htm

          AMBA總線是一種應用廣泛的層次化總線結構,有高速的AHB和低速APB之分,其中AHB是一種流水式高速總線結構,地址和數據總線相互獨立,可掛載16個Master和Slaver設備,常用來組織和連接高性能模塊,如處理器、DMA控制器、協處理器等[5~7]。AHB總線的核心是AHB控制器,主要包括仲裁器,譯碼器和多路復用器,其中仲裁器選擇AHB Master,而譯碼器選擇AHB Slave,寫數據WDATA和讀數據RDATA分開,如圖3所示。

          

        AHB總線

          DMA控制器

          DMA是指設備直接對計算機存儲器進行讀寫操作的方式。這種方式下數據的讀寫無需CPU執行指令,也不經過CPU內部寄存器,而是利用系統的數據總線直接在源地址和目的地址之間傳送數據,達到極高的傳輸速率。DMA控制器一方面可以接管總線,即可以像CPU一樣視為總線的主設備,這是DMA與其它外設最根本的區別;另一方面,作為一個I/O器件,其DMA控制功能正式通過初始化編程來設置。當CPU對其寫入或讀出時,它又和其它的外設一樣成為總線的從屬設備。本文中為了DMA和AHB密切配合,即啟動DMA后大量原始數據通過AHB總線從數據存儲器進入Speed模塊,需要DMA控制器內部包含AHB Master模塊,如圖4所示。另外需要說明的是,LEON3為了AHB上設備的plugplay需要在0xFFFFF000-0xFFFFF800地址空間添加設備信息[8~9],所以DMA 控制器和Speed協處理器亦要如此,以便LEON3的軟硬件協調一致。在C語言實現DMA時,向DMA的控制寄存器寫入相應的信息,即可啟動DMA傳輸,如圖5所示。

          

        DMA與AHB Master的關系

          圖4 DMA與AHB Master的關系

          

        啟動DMA的C代碼示意

          圖5 啟動DMA的C代碼示意

          Speed的AHB接口

          為了使Speed可以順利接收LEON3傳送過來的控制字或DMA傳送過來的原始數據,需要在原有的Speed core模塊頂層添加AHB Slaver協議來接收AHB上傳送的數據,以及產生相應波形的HDL代碼來將C程序的信息生成Speed所能識別的信號波形進入Speed模塊內部,即從圖6中的控制字,轉化成圖7中的時序。

          

        C語言描述的Speed控制字

          圖6 C語言描述的Speed控制字

          

        Speed core所需的配置時序

          圖7 Speed core所需的配置時序

          同理于控制字,濾波系數和原始數據的輸入亦需要一定的HDL代碼來實現指令或數據向時序圖的轉化,其本質相當于譯碼,實現起來難度不大,此處就不再累述。Speed處理后數據通過狀態信號(zero_flag)下降沿觸發LEON3的中斷響應,實現向外部存儲器的輸出,此過程和數據輸入類似。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 中超| 高安市| 忻城县| 宜兴市| 巨鹿县| 台中县| 尚义县| 池州市| 柘城县| 通海县| 司法| 舟山市| 建始县| 眉山市| 乌什县| 类乌齐县| 阿尔山市| 偏关县| 翁源县| 咸宁市| 友谊县| 衡阳县| 浦县| 黄龙县| 禄丰县| 绵竹市| 金溪县| 大兴区| 万年县| 长治县| 南阳市| 安国市| 岳西县| 子长县| 镇赉县| 潮安县| 赫章县| 民和| 辛集市| 阿城市| 河曲县|