五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

AHB2APB Bridge模塊的Verilog設(shè)計(jì)

2023-04-01 15:46 作者:蛋白兒i  | 我要投稿

前言:

本文是個(gè)人FPGA項(xiàng)目《基于AMBA總線的流水燈控制器系統(tǒng)》中的第二章節(jié),

文章主要內(nèi)容是介紹項(xiàng)目中AHB2APB Bridge模塊的Verilog設(shè)計(jì)方法,

由于該模塊在AMBA總線架構(gòu)中具有不可替代的地位,因此本文章所介紹的設(shè)計(jì)方法和思路在其他設(shè)計(jì)項(xiàng)目中具有很強(qiáng)的通用性,

《基于AMBA總線的流水燈控制器系統(tǒng)》介紹了一個(gè)完全用Verilog HDL手寫的AMBA片上系統(tǒng),設(shè)計(jì)了一個(gè)基于AMBA總線的流水燈控制系統(tǒng),

項(xiàng)目中所有數(shù)字電路邏輯RTL設(shè)計(jì)都是通過(guò)Verilog進(jìn)行的,不會(huì)調(diào)用成熟IP核,

RTL模型的仿真、綜合與布線在Vivado平臺(tái)上完成,最后在FPGA開發(fā)板上進(jìn)行板級(jí)驗(yàn)證。

對(duì)于FPGA項(xiàng)目感興趣的朋友們,可以參照本人發(fā)布于博客園的設(shè)計(jì)文檔與項(xiàng)目在FPGA開發(fā)板上的運(yùn)行演示視頻:

博客園鏈接:https://www.cnblogs.com/sjtu-zsj-990702/p/17251396.html

FPGA上板驗(yàn)證視頻:https://www.bilibili.com/video/BV1EM4y1U7QP/?spm_id_from=333.788.top_right_bar_window_default_collection.content.click

正文:

AHB2APB Bridge是AHB與APB總線之間的橋梁,負(fù)責(zé)兩種協(xié)議信號(hào)的相互轉(zhuǎn)換,

AHB2APB Bridge的模塊框圖和信號(hào)定義如下:


AHB2APB Bridge既是AHB總線上的一個(gè)Slave,也作為APB總線上唯一的Master,

其任務(wù)是將來(lái)自于AHB總線上的信號(hào)轉(zhuǎn)化為APB信號(hào),實(shí)現(xiàn)AHB系統(tǒng)和APB的互聯(lián),


2.1 AHB2APB Bridge有限狀態(tài)機(jī)

那么如何實(shí)現(xiàn)一個(gè)可以完成上述功能的Bridge模塊呢?

答案是通過(guò)一個(gè)有限狀態(tài)機(jī)(FSM,F(xiàn)inite State Machine)來(lái)進(jìn)行控制,

看看一次典型的AHB到APB信號(hào)轉(zhuǎn)換時(shí)序圖(以Read為例):

在T1-T2期間,Bridge作為AHB總線上的Slave被HADDR選中,

在T2-T4兩個(gè)時(shí)鐘周期內(nèi),Bridge將AHB的HADDR上的地址Addr1放在APB總線的PADDR上,

其中T2-T3,PENABLE尚未被拉高,且HREADY會(huì)被Bridge拉低,因?yàn)锳PB的傳輸速度是低于AHB的,需要AHB總線上的Master進(jìn)行等待,

而T3-T4,PENABLE被Bridge使能,數(shù)據(jù)信息被放上PRDATA并且由Bridge轉(zhuǎn)交給HRDATA,

我們將T1-T2,T2-T3,T3-T4這個(gè)周期分別稱為IDLESETUPENABLE,

于是我們得到AHB2APB Bridge的狀態(tài)機(jī)轉(zhuǎn)換示意圖:


總結(jié)一下:

1. 對(duì)于SETUP,下一個(gè)周期必定跳往ENABLE,

由于本項(xiàng)目用的是APB-Lite,沒有PREADY信號(hào),所有APB傳輸必須在兩個(gè)周期完成

2. 對(duì)于IDLE或ENABLE,若總線上有傳輸,則下一個(gè)周期為SETUP;若無(wú),則下一個(gè)周期為IDLE

(“有無(wú)傳輸”,意思是AHB端的HADDR是否選中APB上的設(shè)備)

注意:在T2-T4傳輸Data1后,APB總線又在T4-T6兩個(gè)周期內(nèi)完成了Data2的傳輸,

這兩次傳輸之間并沒有經(jīng)歷IDLE狀態(tài),這表明當(dāng)AHB總線上仍然有傳輸任務(wù)時(shí),ENABLE狀態(tài)直接跳往SETUP狀態(tài)以準(zhǔn)備下一個(gè)數(shù)據(jù)的傳輸,

由此我們得到AHB2APB Bridge的狀態(tài)機(jī):

2.2 AHB與APB信號(hào)轉(zhuǎn)換

完成上述狀態(tài)機(jī)設(shè)計(jì)后,剩下的工作就非常簡(jiǎn)單了,我們需要把AHB總線上的信號(hào)放到APB總線上:

1. APB上的控制信號(hào)(PWRITE,PADDR)與數(shù)據(jù)信號(hào)(PWDATA,PRDATA)都是直接從AHB那邊的信號(hào)拿過(guò)來(lái)的,

2. PENABLE只在ENABLE狀態(tài)下拉高,

3. PSELx取決于HADDR落在APB總線上哪個(gè)外設(shè)的地址空間范圍內(nèi),在本設(shè)計(jì)中,APB Slave為APB GPIO模塊

于是可以得到AHB與APB信號(hào)之間的對(duì)應(yīng)關(guān)系:


最后,

附上AHB2APB Bridge模塊的完整RTL:


AHB2APB Bridge模塊的Verilog設(shè)計(jì)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
东山县| 库伦旗| 新宁县| 栾川县| 保亭| 思南县| 宁化县| 陈巴尔虎旗| 息烽县| 临沧市| 江安县| 南漳县| 萨嘎县| 普宁市| 伊川县| 深水埗区| 安丘市| 万源市| 河南省| 绥芬河市| 垦利县| 梅州市| 南京市| 阜阳市| 鄱阳县| 龙海市| 玉环县| 长春市| 剑川县| 垦利县| 贵阳市| 都兰县| 延津县| 永福县| 沙雅县| 吉安市| 阿拉善盟| 雷州市| 巨鹿县| 高密市| 都昌县|