最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
库尔勒市| 洛扎县| 舞钢市| 家居| 武山县| 灵丘县| 梁河县| 瑞丽市| 兴化市| 安阳县| 岱山县| 沈丘县| 亳州市| 浦北县| 成安县| 安西县| 任丘市| 北辰区| 武宣县| 那坡县| 波密县| 阜宁县| 黑河市| 石门县| 启东市| 邵阳县| 阳城县| 大庆市| 高平市| 开平市| 赞皇县| 二手房| 河间市| 沧源| 林州市| 会同县| 石棉县| 房产| 泸州市| 涞源县| 丁青县|