本發(fā)明涉及液晶顯示技術(shù)領(lǐng)域,尤其涉及一種基于FPGA的邏輯IP總線互聯(lián)實現(xiàn)裝置。
背景技術(shù):
在以FPGA可編程邏輯芯片為平臺的圖像/視頻處理方案中,通常包含各種不同算法和功能的圖像/視頻處理單元,例如模擬前端ADC、圖像/視頻解碼器、測試圖樣發(fā)生器、格式檢測、幀緩存、視頻縮放、輸出串行化等單元模塊。為了提高圖像/視頻處理的實時效率,通常采用流水線設(shè)計實現(xiàn)這些模塊之間的互連,即一級模塊處理完交給下一級處理模塊,一環(huán)接一環(huán)的將數(shù)據(jù)包傳遞下去。這里面就會有跨時鐘域的問題,例如模擬前端ADC處理的是眾多不同的視頻接口、不同的視頻傳輸速率,其具有自己的采樣轉(zhuǎn)化速率,即工作時鐘域;而當(dāng)進行到視頻解碼器單元,為了解碼PAL或NTSC不同制式的模擬信號,又會采用不同的處理時鐘;在幀緩存單元,如采用了非常高速的DDR3存儲器,則又要按存儲器讀/寫速率重新制定數(shù)據(jù)傳輸接口協(xié)議、數(shù)據(jù)封包規(guī)則、數(shù)據(jù)傳輸速率,執(zhí)行數(shù)據(jù)存儲或讀出。圖像/視頻處理流水線中的數(shù)據(jù)流要跨過很多的功能模塊,每個功能模塊可能工作在不同的時鐘域。在這條流水線中,如果沒有一條標(biāo)準(zhǔn)化的數(shù)據(jù)傳輸協(xié)議,則邏輯功能IP之間的互連將會成為工程師所面臨的一個很復(fù)雜的問題。
而在控制層面,不同邏輯單元的功能寄存器管理著每種特殊算法、功能的實現(xiàn),以及每種邏輯單元的正常工作流程。如果它們也處于不同的時鐘域,則處理器很難控制所有系統(tǒng)單元模塊的工作狀態(tài),因而需要制定一種標(biāo)準(zhǔn)化的控制總線協(xié)議,以將所有不同時鐘域的功能寄存器配置單元統(tǒng)一匯總到控制總線上。在以Intel、AMD等處理器為核心的高端電腦主板產(chǎn)品的設(shè)計中,通常采用了專用的北橋、南橋芯片解決外部功能單元與處理器之間的速率、接口、協(xié)議差異的互聯(lián)問題。處理器的處理速度不斷的提升,而很多外部設(shè)備單元的處理速度提升遠(yuǎn)沒有達到處理器的處理速度,因此也產(chǎn)生了很多總線標(biāo)準(zhǔn)解決處理器與某些專用外部設(shè)備的性能差異及互聯(lián)問題,例如ISA、PCI、AGP、PCIe總線等。而在處理器內(nèi)部也有相應(yīng)的諸如地址總線、數(shù)據(jù)總線、控制總線、仲裁單元來解決處理器內(nèi)部模塊之間互聯(lián)的問題。
綜上所述,對于一個復(fù)雜的數(shù)字邏輯單元,內(nèi)部模塊互聯(lián)的總線標(biāo)準(zhǔn)化實現(xiàn)效率也體現(xiàn)了系統(tǒng)的整體性能、效率,因而現(xiàn)有的亟待解決的技術(shù)問題之一為:如何解決不同時鐘域的邏輯功能IP與處理器之間的互聯(lián)問題。
技術(shù)實現(xiàn)要素:
針對上述技術(shù)問題,本發(fā)明提出如下技術(shù)方案:
一種基于FPGA的邏輯IP總線互聯(lián)實現(xiàn)裝置,包括AXI4Lite總線接口互聯(lián)單元以及邏輯功能封裝單元;
所述AXI4Lite總線接口互聯(lián)單元用于連接處理器單元與所述邏輯功能封裝單元;
所述邏輯功能封裝單元包括AXI4Lite總線協(xié)議解析模塊和寄存器模塊;
所述AXI4Lite總線協(xié)議解析模塊用于將AXI4Lite協(xié)議轉(zhuǎn)化為所述邏輯功能封裝單元內(nèi)部的寄存器讀/寫總線協(xié)議;
所述寄存器模塊用于將所屬的邏輯功能封裝單元的預(yù)設(shè)功能、算法轉(zhuǎn)化為參數(shù)化控制指令,并將所述參數(shù)化控制指令以寄存器的形式實現(xiàn)。
可選地,所述邏輯功能封裝單元包括模擬前端AFE單元、視頻解碼器單元以及輸入格式檢測單元;
所述AFE單元用于將模擬視頻信號進行數(shù)字化處理;
所述視頻解碼器單元用于將對視頻信號進行解碼;
所述輸入格式檢測單元用于對視頻信號的輸入格式進行檢測。
可選地,所述邏輯功能封裝單元具有標(biāo)準(zhǔn)化的寄存器讀/寫控制總線。
可選地,所述寄存器讀/寫控制總線包含控制讀/寫指令、地址總線以及數(shù)據(jù)總線。
可選地,所述AXI4Lite總線接口互聯(lián)單元包括異步FIFO、時鐘轉(zhuǎn)換器、多個AXI Master/Slave接口、多AXI接口協(xié)議MUX及映射器。
可選地,所述處理器單元包括兼容AMBA AXI4Lite標(biāo)準(zhǔn)總線協(xié)議的上層Master單元。
可選地,所述AMBA AXI4Lite總線協(xié)議包含如下相互獨立的通道:
讀地址通道、讀數(shù)據(jù)通道、寫地址通道、寫數(shù)據(jù)通道以及寫響應(yīng)通道。
可選地,所述通道兩端的接口根據(jù)數(shù)據(jù)傳輸方向不同分為主接口Master和從接口Slave interface。
可選地,所述寫數(shù)據(jù)通道的數(shù)據(jù)傳輸方向為從所述Master interface傳向所述Slave interface。
可選地,所述讀數(shù)據(jù)通道的數(shù)據(jù)傳輸方向為從所述Slave interface傳向所述Master interface。
本發(fā)明的基于FPGA的邏輯IP總線互聯(lián)實現(xiàn)裝置,包括AXI4Lite總線接口互聯(lián)單元以及邏輯功能封裝單元,所述AXI4Lite總線接口互聯(lián)單元用于連接處理器單元與所述邏輯功能封裝單元,所述邏輯功能封裝單元包括AXI4Lite總線協(xié)議解析模塊和寄存器模塊,所述AXI4Lite總線協(xié)議解析模塊用于將AXI4Lite協(xié)議轉(zhuǎn)化為所述邏輯功能封裝單元內(nèi)部的寄存器讀/寫總線協(xié)議,所述寄存器模塊用于將所屬的邏輯功能封裝單元的預(yù)設(shè)功能、算法轉(zhuǎn)化為參數(shù)化控制指令,并將所述參數(shù)化控制指令以寄存器的形式實現(xiàn),本發(fā)明由于IP實現(xiàn)形式所占用的可編程邏輯資源很少,可在不同的FPGA可編程邏輯平臺上(包括CPLD)去實現(xiàn),通過實現(xiàn)兼容AMBA AXI4Lite標(biāo)準(zhǔn)總線協(xié)議,可將不同功能、不同時鐘域的邏輯功能IP互連、擴展到豐富的片上AMBA片上SOC處理器的平臺中,特別適合應(yīng)用于在以FPGA為平臺實現(xiàn)圖像/視頻處理功能、及算法的產(chǎn)品中。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一個實施例的基于FPGA的邏輯IP總線互聯(lián)實現(xiàn)裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明一個實施例的基于FPGA實現(xiàn)AXI總線協(xié)議的系統(tǒng)架構(gòu)示意圖;
圖3為本發(fā)明一個實施例的總線協(xié)議接口示意框圖;
圖4為本發(fā)明一個實施例的從Master interface向Slave interface傳輸數(shù)據(jù)的握手信號規(guī)則示意圖;
圖5為本發(fā)明一個實施例的從Slave interface向Master interface傳輸數(shù)據(jù)的握手信號規(guī)則示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明提供的控制總線接口標(biāo)準(zhǔn)化的技術(shù)方案,用于解決處理器與不同邏輯功能IP之間的互聯(lián)問題??偟膩碚f,本發(fā)明的是通過以下技術(shù)方案實現(xiàn)的:
通過可編程語言Verilog,在FPGA可編程邏輯資源平臺上執(zhí)行一個接口模塊,該模塊主要實現(xiàn)的功能就是對AMBA AXI4Lite總線協(xié)議進行解析,以實現(xiàn)控制總線接口標(biāo)準(zhǔn)化。本發(fā)明所要解決的技術(shù)問題是如何實現(xiàn)接口總線標(biāo)準(zhǔn)化,因而需要對上層屏蔽掉不同邏輯功能的差異性,因為上層處理器并不需要了解下層互聯(lián)邏輯功能模塊的實現(xiàn)細(xì)節(jié),而需要在上層處理器之間僅僅搭建一個標(biāo)準(zhǔn)化的通訊接口,因此除了總線接口標(biāo)準(zhǔn)化,還需要統(tǒng)一邏輯模塊內(nèi)部的控制模式,即采用標(biāo)準(zhǔn)化的寄存器功能控制方式。
首先,邏輯功能模塊需要將其實現(xiàn)的算法參數(shù)、控制指令全部寄存器化??梢岳斫獾氖?,邏輯模塊如需要正常運作,則需要上層處理器通過配置不同的寄存器值狀態(tài),達到對下層邏輯功能模塊的間接控制,制定出統(tǒng)一的寄存器讀/寫總線,例如寫地址總線、寫數(shù)據(jù)總線、寫控制命令、讀地址總線、讀數(shù)據(jù)總線、讀控制命令。
接下來,解析AMBA AXI4Lite總線協(xié)議,即將AXI4Lite協(xié)議轉(zhuǎn)化為邏輯模塊內(nèi)部的寄存器讀/寫總線協(xié)議。
為了實現(xiàn)AXI總線標(biāo)準(zhǔn)化互聯(lián),在實現(xiàn)上述AMBA AXI4Lite協(xié)議的解析模塊后,將其集成到具體執(zhí)行特殊功能的邏輯IP中,以通過AXI4Lite Interconnect(內(nèi)部互聯(lián)模塊)與上層同樣兼容AMBA AXI4Lite協(xié)議的處理器進行通訊。
具體地,圖1為本發(fā)明一個實施例的基于FPGA的邏輯IP總線互聯(lián)實現(xiàn)裝置的結(jié)構(gòu)示意圖;如圖1所示,該裝置包括AXI4Lite總線接口互聯(lián)單元20以及邏輯功能封裝單元30,其中:
AXI4Lite總線接口互聯(lián)單元20用于連接處理器單元10與所述邏輯功能封裝單元30;
其中,處理器單元10可指代控制層面的具有以下類似功能的單元,如:通過AXI4Lite總線互聯(lián)單元與各種不同邏輯功能封裝單元互聯(lián),通過AXI4Lite總線將控制指令發(fā)送至不同邏輯功能封裝單元,還可通過AXI4Lite總線獲取邏輯功能封裝單元的命令執(zhí)行反饋。
邏輯功能封裝單元30包括AXI4Lite總線協(xié)議解析模塊31和寄存器模塊32;
具體地,AXI4Lite總線協(xié)議解析模塊31用于將AXI4Lite協(xié)議轉(zhuǎn)化為所述邏輯功能封裝單元內(nèi)部的寄存器讀/寫總線協(xié)議;
寄存器模塊32用于將所屬的邏輯功能封裝單元的預(yù)設(shè)功能、算法轉(zhuǎn)化為參數(shù)化控制指令,并將所述參數(shù)化控制指令以寄存器的形式實現(xiàn),進而,在控制層面只需要控制器通過更新上述寄存器的不同的存儲值,即可實現(xiàn)對具體功能、算法執(zhí)行過程的控制。
本實施例的基于FPGA的邏輯IP總線互聯(lián)實現(xiàn)裝置,由于IP實現(xiàn)形式所占用的可編程邏輯資源很少,可在不同的FPGA可編程邏輯平臺上(包括CPLD)去實現(xiàn),通過實現(xiàn)兼容AMBA AXI4Lite標(biāo)準(zhǔn)總線協(xié)議,可將不同功能、不同時鐘域的邏輯功能IP互連、擴展到豐富的片上AMBA片上SOC處理器的平臺中,特別適合應(yīng)用于在以FPGA為平臺實現(xiàn)圖像/視頻處理功能、及算法的產(chǎn)品中。
進一步地,作為上述實施例的優(yōu)選,所述邏輯功能封裝單元30可以包括模擬前端AFE單元、視頻解碼器單元以及輸入格式檢測單元;
具體地,所述AFE單元用于將模擬視頻信號進行數(shù)字化處理;
所述視頻解碼器單元用于將對視頻信號進行解碼;
所述輸入格式檢測單元用于對視頻信號的輸入格式進行檢測。
需要說明的是,上述所列出的邏輯功能單元主要應(yīng)用在邏輯IP之間、邏輯IP與控制器/處理器之間,用于實現(xiàn)不同邏輯功能的封裝單元。
上述的AFE單元、視頻解碼器單元以及輸入格式檢測單元僅僅作為本發(fā)明的邏輯IP總線互聯(lián)實現(xiàn)裝置的具體應(yīng)用示例,本發(fā)明對此不進行限制??梢岳斫獾氖?,除了上述AFE單元、視頻解碼器單元以及輸入格式檢測單元之外,所述邏輯功能封裝單元可以是其他實現(xiàn)任意預(yù)設(shè)功能或算法的邏輯單元,通過上述AXI4Lite總線協(xié)議解析方法可使所述邏輯功能封裝單元與標(biāo)準(zhǔn)的、兼容AMBA AXI4Lite協(xié)議的系統(tǒng)、控制器進行互聯(lián)、功能擴展。
進一步地,作為上述實施例的優(yōu)選,所述邏輯功能封裝單元30具有標(biāo)準(zhǔn)化的寄存器讀/寫控制總線33。
進一步地,作為上述實施例的優(yōu)選,所述寄存器讀/寫控制總線33包含控制讀/寫指令、地址總線以及數(shù)據(jù)總線。
進一步地,作為上述實施例的優(yōu)選,所述AXI4Lite總線接口互聯(lián)單元20可以包括異步FIFO、時鐘轉(zhuǎn)換器、多個AXI Master/Slave接口、多AXI接口協(xié)議MUX及映射器。
進一步地,作為上述實施例的優(yōu)選,所述處理器單元10可以包括兼容AMBA AXI4Lite標(biāo)準(zhǔn)總線協(xié)議的上層Master單元。
進一步地,作為上述實施例的優(yōu)選,所述AMBA AXI4Lite總線協(xié)議包含如下相互獨立的通道:
讀地址通道、讀數(shù)據(jù)通道、寫地址通道、寫數(shù)據(jù)通道以及寫響應(yīng)通道。
進一步地,作為上述實施例的優(yōu)選,所述通道兩端的接口根據(jù)數(shù)據(jù)傳輸方向不同分為主接口Master和從接口Slave interface。
進一步地,作為上述實施例的優(yōu)選,所述寫數(shù)據(jù)通道的數(shù)據(jù)傳輸方向為從所述Master interface傳向所述Slave interface。
進一步地,作為上述實施例的優(yōu)選,所述讀數(shù)據(jù)通道的數(shù)據(jù)傳輸方向為從所述Slave interface傳向所述Master interface。
下面以一具體實施例說明本發(fā)明的基于FPGA的邏輯IP總線互聯(lián)實現(xiàn)裝置的結(jié)構(gòu)及工作原理,但不用于限制本發(fā)明。
圖2為本發(fā)明一個實施例的基于FPGA實現(xiàn)AXI總線協(xié)議的系統(tǒng)架構(gòu)示意圖,如圖2所示,該架構(gòu)包括:
模擬前端(AFE)1,其為用于進行模擬視頻信號數(shù)字化處理的單功能模塊;
具體來說,模擬前端(AFE)1集成了AXI4Lite總線協(xié)議解析模塊2以及模擬前端模塊的寄存器單元3,其中:
AXI4Lite總線協(xié)議解析模塊2用于從五個通道中解析出寄存器讀/寫控制總線的控制指令、地址指令、數(shù)據(jù)指令;其中,每個通道都是通過特殊的握手信號Ready和Valid實現(xiàn)指令傳輸?shù)?,且具有兩種模式實現(xiàn)雙向的指令傳輸:Master傳向Slave指令(參見圖4所示握手信號規(guī)則);Slave傳向Master指令(參見圖5所示握手信號規(guī)則);
具體來說,圖3為本發(fā)明一個實施例的總線協(xié)議接口示意框圖;圖4為本發(fā)明一個實施例的從Master interface向Slave interface傳輸數(shù)據(jù)的握手信號規(guī)則示意圖;如圖3、圖4所示,本實施例的Master傳向Slave指令實現(xiàn)方法包括:
上層Master在T1時刻發(fā)出Valid請求,同時準(zhǔn)備好向Slave傳送的指令(參見圖4中的Instruction);
下層Slave檢測到上層發(fā)出的Valid請求信號,則在T2時刻,Slave將Ready信號置高;
稍后如果檢測到Master的Valid在T3時刻仍然為高,則將Instruction接收;
否則將Ready置低;
進一步地,如圖5所示,本實施例的Slave傳向Master指令實現(xiàn)方法包括:
下層Slave如需要向Master傳送指令,則Slave在T1時刻將Ready信號置高;Master檢測到Slave的Ready握手信號為高后,則在T2時刻將Valid信號置高;
稍后如果檢測到Slave的Ready在T3時刻仍然為高,則將Instruction接收;
否則將Valid置低。
單邏輯功能模塊AFE的寄存器單元3,具體指針對模擬前端邏輯單元的功能控制指令、參數(shù)寄存器化后的模塊,其具有標(biāo)準(zhǔn)化的寄存器讀/寫控制總線,包含控制讀/寫指令、地址總線、數(shù)據(jù)總線;AXI4Lite接口總線的上層Master通過此寄存器單元對此示例的邏輯功能模塊進行控制;
視頻解碼器4,代表一個處理視頻解碼的單功能模塊,其集成了AXI4Lite總線協(xié)議解析模塊2、視頻解碼器模塊的寄存器單元5,其中:
視頻解碼器模塊的寄存器單元5指針對視頻解碼邏輯單元的功能控制指令、參數(shù)寄存器化后的模塊,具有標(biāo)準(zhǔn)化的寄存器讀/寫控制總線,包含控制讀/寫指令、地址總線、數(shù)據(jù)總線;AXI4Lite接口總線的上層Master通過此寄存器單元對此示例的邏輯功能模塊進行控制;
輸入格式檢測模塊(IFM)6,代表一個執(zhí)行輸入格式檢測的單功能模塊,其集成了本發(fā)明實現(xiàn)的AXI4Lite總線協(xié)議解析模塊2、輸入格式檢測模塊的寄存器單元7,其中:
輸入格式檢測模塊的寄存器單元7指針對輸入格式檢測邏輯單元的功能控制指令、參數(shù)寄存器化后的模塊,具有標(biāo)準(zhǔn)化的寄存器讀/寫控制總線,包含控制讀/寫指令、地址總線、數(shù)據(jù)總線;AXI4Lite接口總線的上層Master通過此寄存器單元對此示例的邏輯功能模塊進行控制;
此外,還包括其他所有實現(xiàn)單個功能的邏輯封裝單元8,其集成了實現(xiàn)的AXI4Lite總線協(xié)議解析模塊2及其單個功能模塊的寄存器控制單元9,其中:
寄存器單元9代表將單個邏輯模塊的功能控制指令、參數(shù)寄存器化后的模塊,其具有標(biāo)準(zhǔn)化的寄存器讀/寫控制總線,包含控制讀/寫指令、地址總線、數(shù)據(jù)總線;AXI4Lite接口總線的上層Master通過此寄存器單元對此示例的邏輯功能模塊進行控制;
進一步地,本實施例的AXI4Lite總線接口內(nèi)部互聯(lián)的模塊10封裝了異步FIFO、時鐘轉(zhuǎn)換器、多個AXI Master/Slave接口、多AXI接口協(xié)議MUX及映射器;相當(dāng)于一條總線通路,連接了上層處理器及下層多個邏輯功能IP;
本實施例的處理器單元11,指兼容AMBA AXI4Lite標(biāo)準(zhǔn)總線協(xié)議的上層Master單元,其中:
上層AXI4Lite協(xié)議的C驅(qū)動模型12用于將AXI4Lite總線接口的讀/寫控制封裝為高級語言C函數(shù)庫;在AMBA AXI4Lite標(biāo)準(zhǔn)總線互聯(lián)的系統(tǒng)應(yīng)用層即可通過調(diào)用驅(qū)動庫里的C函數(shù)達到控制互聯(lián)到該總線的邏輯功能模塊;
具體來說,本實施例的實現(xiàn)的AXI總線IP互聯(lián)的方法可以包括如下工作流程:
1)對實現(xiàn)單個功能的邏輯模塊算法參數(shù)、控制方式進行配置寄存器化。寄存器采用統(tǒng)一的地址、數(shù)據(jù)、命令總線格式;
2)集成該方法實現(xiàn)的AMBA AXI4Lite標(biāo)準(zhǔn)總線協(xié)議解析模塊。
3)將集成了AXI4Lite標(biāo)準(zhǔn)總線協(xié)議解析模塊的邏輯單元通過AXI4Lite Interconnect連接至互聯(lián)總線上。
4)將兼容AMBA AXI4Lite標(biāo)準(zhǔn)總線協(xié)議的處理器也通過AXI4Lite Interconnect連接至互聯(lián)總線上;
5)在處理器應(yīng)用平臺調(diào)用API驅(qū)動庫里的相應(yīng)C操作函數(shù),對底層邏輯單元進行算法、功能控制;
至此,本實施例的AXI總線IP互聯(lián)的方法的工作流程說明完畢。
以上實施例僅用于說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。